我正在尝试使用Laravel生成一个包含MySQL表中值的下拉列表.表很简单,两列 - id
和category
.
以下将检索所有记录(类别),但返回一个对象而不是一个数组,这是我需要的下拉代码 -
$categories = Category::all();
Run Code Online (Sandbox Code Playgroud)
下拉列表的代码是:
{{ Form::select('category', $categories, $post->category_id) }}
Run Code Online (Sandbox Code Playgroud)
想法?
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);
}
Run Code Online (Sandbox Code Playgroud)
然后,在形式:
{{ Form::select('categories', $categories)}}
Run Code Online (Sandbox Code Playgroud)
我最终得到这个HTML:
<select name="categories">
<optgroup label="0">
<option value="1">Department News</option>
</optgroup>
<optgroup label="1">
<option value="2">General</option>
</optgroup>
...
</select>
Run Code Online (Sandbox Code Playgroud)
Bar*_*vdh 30
您可以尝试'列表'功能:
$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)
归档时间: |
|
查看次数: |
14799 次 |
最近记录: |