laravel Blade 如何设置下拉列表的选项
Posted
技术标签:
【中文标题】laravel Blade 如何设置下拉列表的选项【英文标题】:laravel blade how to set the options for drop down list 【发布时间】:2014-09-02 16:48:54 【问题描述】:我正在尝试使用 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
是一个模型
【问题讨论】:
请说明您如何在 $categories 中获取值。看起来你有 JSON 而不是一个数组。 ***.com/questions/29508297/… 【参考方案1】:Form::select()
需要像这样的扁平数组
而$categories = Category::all()
给你一个多维数组,看起来像
话虽如此,只是改变
$categories = Category::all(['id', 'name']);
到
$categories = Category::lists('name', 'id');
这样就可以了
Form::select('category_id', $categories)
【讨论】:
首先谢谢你。其次,官方文档在哪里。最后,我得到了这个<option value="Apartment">2</option>
我应该得到这个<option value="2">Apartment</option>
,请问如何解决这个问题? +1
你好像把lists()
中的参数颠倒了。仔细看看它应该去'name', 'id'
,反之亦然。就文档而言,请查看laravel.com/docs/queries#selects。特别是“检索列值列表”。以上是关于laravel Blade 如何设置下拉列表的选项的主要内容,如果未能解决你的问题,请参考以下文章
在 laravel 中创建一个下拉列表来选择用户角色 - laravel
当我单击编辑按钮时,如何使用 Ajax 编辑下拉列表或选择选项列表?
如何在 laravel Blade 中创建可搜索的选择选项表单