2016年9月30日 星期五

超简单的从数据库记录生成下拉菜单

最常见的就是分类下拉菜单了,我们的数据库里有这样的记录:
| id  | name |
| --- | ---  |
| 1   | 服装 |
| 2   | 电器 |
| 3   | 书籍 |
我们如果用 Category::all() 得到的结果如下:
array(
    array('id' => 1, 'name' => '服装'),
    array('id' => 2, 'name' => '电器'),
    array('id' => 3, 'name' => '书籍'),
);
但是做下拉列表我们期望的是这样的结果:
array(
    1 => '服装',
    2 => '电器',
    3 => '书籍',
);
在 Eloquent 中使用 Category::lists('name', 'id') 即可。
这里解释一下 lists 的两个参数,第一个参数是  的字段名称,第二个参数为可选,如果传递,则以该字段值作为对应结果的 key, 不传则为索引数组,相当于只取了第一个参数的一列的值。
拿到了这样的数组,在视图里做下拉列表就很简单了:
<select name="category_id">
    @foreach($categories as $id => $name)
    <option value="{{$id}}">{{$name}}</option>
    @endforeach
</select>
如果你用了 Laravel 的 HTML 组件:illuminate/html
{!! Form::select('category_id', $categories) !!}

from : http://laravel.so/tricks/9ebcadf55e90aa787481511a4cad9ae7

沒有留言:

wibiya widget