php - laravel Blade 如何设置下拉列表的选项

标签 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)}}

但是我有一个异常(exception):
htmlentities() expects parameter 1 to be string, array given (View: 

请注意$categories是数组,每行都有id name
更新1

我从 Controller 发送值以这种方式查看
 $categories = Category::All(['id', 'name']);

其中Category是模型

最佳答案

Form::select()需要像这样的平面数组

array(
  1 => 'Appartment',
  2 => 'Car'
)

whereas $categories = Category::all() gives you a multidimensional array that looks like

array(
  0 => array(
    'id' => 1,
    'name' => 'Appartment'
  ),
  1 => array(
    'id' => 2,
    'name' => 'Car'
  )
)

That being said just change

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


$categories = Category::lists('name', 'id');

这样就可以了
{{ Form::select('category_id', $categories) }}

关于php - laravel Blade 如何设置下拉列表的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24708260/

相关文章:

php - Laravel - 为了获得当前前缀 {{URL::to ('prefix/search' )}} 要写什么

Laravel 和 Docker : The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied

php - 如何检查 Laravel 命令是否仍在运行?

php - 将 laravel 对象转换为数组

拉拉维尔 4 : where's the profiler?

php - Bootstrap 提前输入错误

php - Yii2: $model->validate() 不起作用

php - MySQL Codeigniter - $this->db->query 和 CLI 结果不匹配

php - Symfony后台事件发送响应错误 session 后

php - Ajax 在 laravel 上返回整个 HTML 文档