5

ドキュメントを読んだらOK:http://four.laravel.com/docs/html#form-model-binding

次のようなフォームがあります。

{{ Form::model($profile, array('action' => 'ProfilesController@edit', $profile->user_id, 'files' => true)) }}
{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), array('class' => 'span12')) }}
{{ From::close() }}

私の問題は、モデル バインディングが Form::select で機能せず、テキスト入力でうまく機能することです。私は何を間違っていますか??

ご協力いただきありがとうございます。

4

2 に答える 2

10

select の 3 番目のパラメーターは、選択した値である必要があると思います。

{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), $profile->gender) }}

モデルバインディングの目的に反することは知っていますが、実際には機能します。もちろん、他の問題は、クラスを失ったことです。

しかし、API をざっと見てみると、次のようになります。

select( string $name, array $list = array(), string $selected = null, array $options = array() )

options 配列を 4 番目の引数として渡すことができることがわかります。

したがって、作業コードは次のとおりです。

{{ Form::select('gender', array('0' => '性別は?', '1' => '男性', '2' => '女性'), $profile->gender 、配列('クラス' => 'span12')) }}

于 2013-07-15T17:20:48.070 に答える
6

kJamesy の言うとおりです。3 番目のパラメーターは選択された値でなければなりませんが、null に設定すると、フォーム モデル バインディングによって既定値が設定されます。

{{ Form::model($profile, array('action' => 'ProfilesController@edit', $profile->user_id, 'files' => true)) }}
{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), null, array('class' => 'span12')) }}
{{ From::close() }}
于 2014-02-11T02:46:13.977 に答える