最常见的就是分类下拉菜单了,我们的数据库里有这样的记录:
| 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
沒有留言:
張貼留言