我正在尝试使用 Laravel 生成一个包含 MySQL 表中的值的下拉列表。表格很简单,两列 -id
and category
.
以下将检索所有记录(类别),但返回一个对象而不是数组,这是我需要的下拉代码 -
$categories = Category::all();
下拉菜单的代码是:
{{ Form::select('category', $categories, $post->category_id) }}
Ideas?
UPDATE
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>
您可以尝试“列表”功能:
$categories = Category::lists('category', 'id');
(仅适用于 Laravel 3)
或者甚至省略“id”参数,因为它将默认为 Model 键,请参阅http://laravel.com/api/source-class-Laravel.Database.Query.html#596
$categories = Category::lists('category');
(对于 Laravel 4,您确实需要第二个参数,请参阅http://laravel.com/api/source-class-Illuminate.Database.Query.Builder.html#1034-1063)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)