我正在尝试使用blade
我已经检查了这个问题Laravel 4 blade drop-down list class attribute
我试过了:
{{Form::select('category_id', $categories)}}
结果是:
<select name="category_id"><option value="0">{"id":2,"name":"Apartment"}</option><option value="1">{"id":3,"name":"Car"}</option></select>
我无法知道如何仅显示选项的name
值。另外,我无法知道如何将每个选项的值设置为id
我知道第四个参数是选项一,我试着这样做
{{Form::select('category_id', $categories, '', $categories)}}
但我得到了这个例外:
htmlentities() expects parameter 1 to be string, array given (View:
请注意,$categories
是数组,每行都有id
和 name
我将控制器中的值发送到这样的视图
$categories = Category::All(['id', 'name']);
其中Category
是模型
答案 0 :(得分:8)
Form::select()
需要像
array( 1 => 'Appartment', 2 => 'Car' )
而$categories = Category::all()
为您提供了一个看起来像
array( 0 => array( 'id' => 1, 'name' => 'Appartment' ), 1 => array( 'id' => 2, 'name' => 'Car' ) )
说的只是改变
$categories = Category::all(['id', 'name']);
到
$categories = Category::lists('name', 'id');
然后这将正常工作
{{ Form::select('category_id', $categories) }}