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

时间:2014-07-12 00:01:51

标签: php laravel laravel-4 blade

我正在尝试使用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

更新1

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

 $categories = Category::All(['id', 'name']);

其中Category是模型

1 个答案:

答案 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) }}