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

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

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

selectタグで配列を送信する

name要素に[]をつけると配列になる。 <select multiple data-rel="chosen" class="span10" name="tags[]"> @foreach($tags as $tag) <option>{{ $tag->name }}</option> @endforeach </select>

Form::modelを使った場合は初期値をnullにする

Form::modelを使う場合は、既に入っている値を自動的に取得してくれるので便利。注意するのは初期値を指定するときはnullにすること。 {{ Form::model($title,[ 'method' => 'put', 'route' => ['title.update',$title->id], 'class' => 'form-horizontal' ]…

Laravelとdatepicker

jQuery-UIのdatepickerはMySQLフォーマットにしよう。 MySQLのDate型は「yy-mm-dd」なので、jQuery-UIのdatepickerはデフォルトのままだと使えない。 以下のように設定を変える必要がある。 $(function() { $(".datepicker").datepicker("option", "dateForm…

LaravelでNO_ZERO_DATEは効かない

MySQLに「NO_ZERO_DATE」を指定すると、Laravelが動かなくなった。どうやらtimestamps()が違反するらしい。 SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'created_at'

Form::selectの書き方

Formでselect書くときはこうするのか。 {{ Form::select('bunrui', ['PHP', 'Perl', 'Ruby'], 'PHP',['data-rel'=>'chosen']) }}以下のように出力される。 <select data-rel="chosen" name="bunrui"> <option>PHP</option> <option>PHP</option> <option>Perl</option> <option>Ruby</option> </select>

FormをModelと一致させる

Blade側でFormをModelと一致させる。 {{ Form::model($title,[]) }}そうするとController側でこういう書き方ができて楽。 $title = Title::find($id); $inputs = Input::all(); $title->update($inputs);

Laravelのファイルアップロード

Laravelでファイルアップロードをする場合。 Blade側 {{ Form::open(['action' => ['TitleController@upload'], 'files' => true]) }} <fieldset> クリックしてCSVファイルを選択してください ⇒ <input class="input-file uniform_on" type="file" name="csv"> <div class="form-actions"> <button type="submit" class="btn btn-warning">アップロード</button> /div> …</div></fieldset>

HTML::styleでID指定する

HTML::styleでIDを指定したい場合は例によって引数で渡す。 {{ HTML::style('ashley/css/colors.css',['id'=>'colors']) }}<link id="colors" media="all" type="text/css" rel="stylesheet" href="http://localhost/ashley/css/colors.css"></link>

Laravel 4.1

Laravel 4.1がついに出た!と思ったらすでに4.1.1になっていた。

自作コマンドのオプション

自作コマンドを作った場合、optionメソッドの戻り値はオプションの有無の真偽値なので、「$this->option('auto')」の結果はTrueかFalseだ。以下みたいに書ける。 public function fire() { if ($this->option('auto')) { echo 'Hello'; } } protected functi…

workbenchに対してmigrateを実行する

例えば認証パッケージのconfideでmigrateを実行したいときは php artisan migrate --package=zizaco/confideを実行すれば、「vendor\zizaco\confide\src\migrations」フォルダ内が読み込まれる。しかし自作のパッケージだとworkbench内に置かれるのでやり方…

whereメソッドで結果を一件だけ取得したいとき

find()のように結果を一件だけ取得したいときはfirst()を使う。 $title = Title::where('name','=',$name)->first();

Laravelで定数値を設定する

他にも方法ありそうだけど、とりあえず…。 「app\start」フォルダ内に「constants.php」を作って、中に定数値を記述する。

artisan workbenchでJSONのエラーが出たら

こんなエラーが出た。 C:\xampp\arana>php artisan workbench futari/rei --resources Package workbench created! [Composer\Json\JsonValidationException] "./composer.json" does not match the expected JSON schema: - authors[0] : the property name…

Form::openでメソッドとは違うURLを使いたいとき

Form::openでメソッドとは違うURLの要素を使いたいときは以下のようにする。 {{ Form::open(['action' => 'VoteController@reset','url'=>'delete']) }}出力はこうなる。 <form method="POST" action="http://localhost/delete" accept-charset="UTF-8"></form>

いきなりファサードにチャレンジする

Laravelのドキュメントには「ファサードを始める前にIoCコンテナを習得しとけよ!」って強めに書いてある。しかし「Auth」って書くだけでメソッドを呼び出すことができるファサード、すぐ使いたかったのでいきなりやってみた。未だにIoCコンテナはわからない…