laravel blade如何设置下拉列表的选项

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

更新1

我将控制器的值发送到这样的视图

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

  • 看来你在`lists()`中反转了参数.仔细看看它应该是''name','id'`反之亦然.就文档而言,请查看http://laravel.com/docs/queries#selects.特别是'检索列值列表'. (2认同)