我正在尝试使用 Laravel 生成一个包含来自 MySQL 表的值的下拉列表。该表很简单,两列 -id
和category
。
以下将检索所有记录(类别),但返回一个对象而不是数组,这是我需要的下拉代码 -
$categories = Category::all();
下拉菜单的代码是:
{{ Form::select('category', $categories, $post->category_id) }}
想法?
更新
bgallagh3r 建议使用 foreach 循环将每个类别转换为数组。他们的代码让我很接近,但生成了一堆时髦的嵌套optgroup
标签。我能够把它降到只有一个optgroup
,但这是一个太多了..
$categories = Category::all();
foreach ($categories as $cat)
{
$category = $cat->to_array();
$id = $category['id'];
$value = $category['category'];
$cats[] = array($id => $value);
}
然后,以以下形式:
{{ Form::select('categories', $categories)}}
我最终得到了这个 HTML:
<select name="categories">
<optgroup label="0">
<option value="1">Department News</option>
</optgroup>
<optgroup label="1">
<option value="2">General</option>
</optgroup>
...
</select>