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

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

Form

Form::openでメソッドを指定する

Form::openで直接メソッドを指定する。 {{ Form::open(['action' => ['UserController@change', $user->id]]) }} {{ Form::close() }}これにはroute.phpへの記述も必要。 Route::post('user/change', 'UserController@change');

Laravelで自作メソッドにidを渡す

Laravel4で自作メソッドにidを渡す。 Viewの書き方 {{ Form::open(['action' => ['JisakuController@insert',$jisaku->id]) }} routes.phpの書き方 Route::post('jisakus/{id}/insert', 'JisakuController@insert') コントローラーの書き方 public function …

Laravelでデータを削除するときのForm文

Laravelでデータを削除するときのForm::openの書き方 {{ Form::open([ 'route' => ['comments.destroy',$comment->id], 'method' => 'delete', 'class'=>'form-horizontal' ]) }} <p><button type="submit" class="btn-u btn-u-blue">DELETE</button></p> {{ Form::close() }}

Form::modelでエラーが発生する

Form::modelでMethodNotAllowedHttpExceptionのエラーが発生する場合は、methodの設定間違いの可能性がある。「'method' => 'PUT'」を足したら直った。 {{ Form::model( $task, ['route' => ['tasks.update', $task->id], 'role'=>'form', 'method' => 'PUT'…

Configに設定した値でセレクトボックスを作る

Formのselectを使うときに、そのvalueはConfigから持ってくることが多い。私の場合は以下のようにしている。 {{ Form::select('movies[]', Config::get('movies.title'), $movies , ['multiple' => true,'data-rel'=>'chosen','class'=>'span12']) }}

CreateとEditで同じBladeのFormを使う

php - Laravel use same form for create and edit - Stack Overflow 上記に書いてあった方法だけど、@if(isset($user))で分岐させればいいのか。私は共通部品だけ別ファイルで抽出して@includeさせていた。それとリンク先に書いてあったInput::old()という…

Form::textにautofocusを設定する方法

Form::textにautofocusを設定する方法は以下のとおり。 Form::text('username',null,['autofocus'=>'autofocus'])

Form::checkboxでチェック無し時の値を渡す方法

Form::checkboxでチェック無しの時はInput::get('iam')は0ではなくて無になる。0を渡したい時はhiddenを埋め込んでおく。 {{ Form::hidden('iam', 0) }} {{ Form::checkbox('iam',1) }} ご本人ですか?

Form::openからメソッドを指定する

Form::openからメソッドを指定する。 {{ Form::open(['action' => ['UserController@change', $user->id]]) }} {{ Form::close() }}

Form::checkboxの作り方

例えば以下のようなチェックボックスをLaravelのFormで作りたいときは <input class="iphone-toggle" data-no-uniform="true" name="doit" type="checkbox" value="1">このようにする。 {{ Form::checkbox('doit',true,[],['class'=>'iphone-toggle','data-no-uniform'=>'true']) }}

Form::selectの効率的な書き方

Form::selectはlistsメソッドを使えば一行で書ける。コントローラ側 $lists = Movie::lists('title', 'id');ビュー側 {{ Form::select('director_id', $lists, null, ['data-rel'=>'chosen']) }}もしくはコンフィグファイルを使ってもよい。コンフィグファイ…

Formの書き方メモ

新規作成のとき {{ Form::open(['route' => 'artist.store','class'=> 'form-horizontal']) }}更新のとき {{ Form::model($artist, ['method' => 'put', 'route' => ['artist.update', $artist->id],'class'=> 'form-horizontal']) }}

Form::modelでDeleteを設定する

Form::modelからControllerのdestoryを呼び出したい。 例えばYasaiControllerのdestoryを呼び出す場合のViewは以下のようにする。2行目の「'method' => 'delete'」を忘れてドツボにハマった。 {{ Form::model($yasai,[ 'method' => 'delete', 'route' => ['y…

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

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

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);

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>

Formのインプットに隠し属性を持たせる

Formのinputにhidden属性を持たせたいときは、Form::hiddenを使う。 {{ Form::hidden('phone', '090-555-12345') }以下のように出力される。 <input name="phone" type="hidden" value="090-555-12345">

FORMのアクションに自作のメソッドを指定する

FORMのアクションに自作のメソッドを指定するとき、blade側はこれだけでいい。でも実行すると「form open Unknown action」というエラーメッセージが出る。 {{ Form::open(['action' => 'TitleController@release']) }}この場合はroute.phpにもメソッドを指…

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

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

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

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