Ana*_*ent 4 php laravel blade laravel-4
我正在尝试使用创建下拉列表 blade
我已经检查了这个问题Laravel 4 blade下拉列表类属性
我试过这个:
{{Form::select('category_id', $categories)}}
Run Code Online (Sandbox Code Playgroud)
结果是:
<select name="category_id"><option value="0">{"id":2,"name":"Apartment"}</option><option value="1">{"id":3,"name":"Car"}</option></select>
Run Code Online (Sandbox Code Playgroud)
我不知道如何只显示name选项的价值.加上我不知道如何设置每个选项的值id
我知道第四个参数是选项一,我试着这样做
{{Form::select('category_id', $categories, '', $categories)}}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个例外:
htmlentities() expects parameter 1 to be string, array given (View:
Run Code Online (Sandbox Code Playgroud)
请注意,$categories是数组,每行都有id 和 name
我将控制器的值发送到这样的视图
$categories = Category::All(['id', 'name']);
Run Code Online (Sandbox Code Playgroud)
Category模特在哪里
pet*_*erm 10
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']);
Run Code Online (Sandbox Code Playgroud)
至
$categories = Category::lists('name', 'id');
Run Code Online (Sandbox Code Playgroud)
然后这将工作得很好
{{ Form::select('category_id', $categories) }}
Run Code Online (Sandbox Code Playgroud)