ふたりはララベル (Laravel PHP Framework)

PHPフレームワークのLaravelの体験記を書いていきます。こんなタイトルのブログですが萌え系アニメは一秒たりとも観たことがありません。

2013-10-01から1ヶ月間の記事一覧

Windowsへのperlモジュールのインストールが失敗する

Windowsへperlモジュールをインストールするときにppdファイルを使う。が、以下のようなメッセージが出て失敗することがある。 > ppm install NetSNMP.ppd ppm install failed: The PPD does not provide code to install for this platformこれはppdファイ…

Form::textareaにスタイルシートのクラスを持たせる

LaravelのForm::textareaやForm::textにclass要素を持たせたいときは、3番目の引数に配列として渡す。ちなみに2番目は初期値になる。ここでは適当にnullでも渡しておく。 {{ Form::textarea('description',null,['class'=>'form-control','rows'=3]) }} {{ F…

DBをEloquent上で結びつける

二つのテーブルがあって、それを結合のように繋げて情報を採取したいときがある。例えばtitleとcharacterという二つのテーブルがある。そのときcharacterを参照するだけで、自動的にtitleからマンガの名前を持って来たい。titleテーブル idname 1ONE PIECE 2…

Eloquentで上位10件を取得する

$comments = Comment::orderBy('id', 'DESC')->take(10)->get();

Laravelのクッキーをセットする

Laravelのクッキーは「Cookie::make」とやってもセットできない。ResponseにwithCookie()をつけて初めてセットできる。 $cookie = Cookie::make('testcookie', 'hello, world', 1); return Response::make($contents)->withCookie($cookie); withCookieはRed…

Laravelでランダムな文字列を生成する

Laravelでランダムな文字列が欲しいときはヘルパー関数を使う。 $string = str_random(40); var_dump($string); この結果は「string(40) "OBbjaakklfT511hmM72uwho5eTtqkDl7Gc6JO7TE" 」となる。

プロキシを越えてpearを使う

pearはプロキシが設定されていると使えない。そういう時はpearのconfigにプロキシのパスワードなどを設定すればよい。使うコマンドはpear config-setだ。 $ pear config-set http_proxy http://ユーザID:パスワード@プロキシ名:ポート番号こんな感じになるは…

Eloquentでcreateするときは割り当て許可が必要

Eloquentでcreateするときは保護が必要何も設定せずにEloquentでcreateするとエラーが出る。【コントローラ側】 Comment::create(array('year' => 2013)); 【エラーメッセージ】 Illuminate \ Database \ Eloquent \ MassAssignmentException yearEloquentで…

pearのパッケージのインストールが失敗する

pearのパッケージをインストールしようとして「No releases available for package」というエラーが出る場合は、キャッシュをクリアすれば成功することがある。 $ pear install phpdoc/phpDocumentor No releases available for package "pear.phpdoc.org/ph…

Net::Telnet::Ciscoでエラー

PerlのNet::Telnet::Ciscoモジュールを使うと、以下のエラーが出る時がある。 Last command and router error: 原因は「先頭の%」だ。例えばコマンドを間違えると以下のメッセージが出る。 % Unknown command or computer name, or unable to find computer …

EloquentでwhereRawを使う

Eloquentのwhereは複数条件が書けない。 $users = User::where('votes', '>', 100)->get();複数条件を書きたい場合はwhereRawを使う。SQL文のwhere句をそのまま書けばよい。 $users = User::whereRaw("votes > 100 and section = $section")->get();

PHPフレームワークのベストテン!GitHubでスター数が多い順

人気のあるプロジェクトの目安となるGitHubのスター数。2013/10/20のPHPフレームワークをスター数の順序で並べてみたよ。 1位Symfony7242 2位CodeIgniter6554 3位Laravel6443 4位Zend Framework24354 5位CakePHP4175 6位Yii3139 7位Slim Framework2867 8位Ph…

timestampを無効にする場合

Eloquentのtimestampは便利だけど、使わない場合は無効にしておかないと「updated_at」がありませんと怒られる。 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: insert into `users` (`name`, `updated_at`, …

migrateのロールバックを有効にする

Xamppだとcomposerがいらなかったのでcomposerを入れてなかった。そのためcomposerが必要となるmigrateの動作が失敗してしまう。失敗するのはrollback、reset、refreshだ。 # php artisan migrate:reset {"error":{ "type":"Symfony\\Component\\Debug\\Exce…

perlで配列の空白を除去する

perlで配列内の空白を除去して配列内の要素を詰めたい場合はgrepを使う。 @file = grep { !/^\s*$/ } @file; これは自作の設定ファイルから適切な行だけ抜き出したいときに使える。 127.0.0.1 # ローカルホスト 127.0.0.2 #127.0.0.3 127.0.0.4 127.0.0.7 例…

blade上でforeachの多重ループ

blade上でforeachの多重ループをしたいときは………そのまんま多重にすればよい。 @foreach ($titles as $title) $title['name'] @foreach ($title->tags as $tag) {{ $tag }} @endforeach @endforeach 上記の場合だと、「$title->tags」が配列である必要がある…

別のURLにリダイレクトする

class TitleController extends \BaseController { /** * Display a listing of the resource. * * @return Response */ public function index() { return Redirect::to('/'); }

SessionHandlerでPermission deniedが発生

フォルダ「app/storage/sessions/」の権限設定を忘れていたら、以下のようなエラーが出てしまった。書き込み権限を設定すれば解決した。 SessionHandler::read(): open(/var/www/hello/app/storage/sessions/sess_v5fkabtdmi8ahwh3hsvk6dzmp0, O_RDWR) faile…

blade上でタグのclassを設定する

blade上でHTMLタグにclassを設定したいときは、配列として渡す。例えばLaravelのFormにclass「form-horizontal」を渡すときは以下のようになる。 {{ Form::open(array('route' => array('hello.store'), 'class' => 'form-horizontal')) }}

blade上で変数の存在確認

blade上で変数がnullだと「Undefined variable: 変数名」というエラーになる。これを回避するためにはissetで変数の中身を確認する。 @if (isset( $message )) $message @else Hello @endif ||

php_eaccelerator_tsは有効にしておく

xamppでLaravelを動かしたら以下のエラーが出た。原因はphp_eaccelerator_tsがデフォルトで無効になっていたからだった。 Warning: Illegal offset type in isset or empty in C:\xampp\bootstrap\compiled.php on line 439 Warning: Illegal offset type in…