【问题标题】:laravel blade how to set the options for drop down listlaravel Blade 如何设置下拉列表的选项
【发布时间】: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 是一个模型

【问题讨论】:

标签: php laravel laravel-4 blade


【解决方案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。特别是“检索列值列表”。
猜你喜欢
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
相关资源
最近更新 更多