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是数组,每一行都有idname

更新 1

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

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

Category 是一个模型

【问题讨论】:

请说明您如何在 $categories 中获取值。看起来你有 JSON 而不是一个数组。 ***.com/questions/29508297/… 【参考方案1】:

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

大批( 1 => '公寓', 2 => '汽车' )

$categories = Category::all() 给你一个多维数组,看起来像

大批( 0 => 数组( 'id' => 1, '名称' => '公寓' ), 1 => 数组( 'id' => 2, '名称' => '汽车' ) )

话虽如此,只是改变

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

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

这样就可以了

 Form::select('category_id', $categories) 

【讨论】:

首先谢谢你。其次,官方文档在哪里。最后,我得到了这个&lt;option value="Apartment"&gt;2&lt;/option&gt; 我应该得到这个&lt;option value="2"&gt;Apartment&lt;/option&gt;,请问如何解决这个问题? +1 你好像把lists()中的参数颠倒了。仔细看看它应该去'name', 'id',反之亦然。就文档而言,请查看laravel.com/docs/queries#selects。特别是“检索列值列表”。

以上是关于laravel Blade 如何设置下拉列表的选项的主要内容,如果未能解决你的问题,请参考以下文章

在 laravel 中创建一个下拉列表来选择用户角色 - laravel

如何在 Laravel 5 下拉列表中检索选定选项的值?

当我单击编辑按钮时,如何使用 Ajax 编辑下拉列表或选择选项列表?

如何在 laravel Blade 中创建可搜索的选择选项表单

如果单击按钮,下拉列表选项会更改(VueJS 和 Laravel 6)

如何验证下拉列表中的“其他”选项?