在 Laravel 项目中,使用 laravelcollective/html 创建一个 select 表单可以参照下面的方法:
使用 Form::select()
可以直接在视图中使用:
{{ Form::select('age', ['18 以下', '19 到 30 岁', '30 岁以上']) }}
上面的代码生成的 html 类似于下面这样:
<select name="age">
<option value="0">18 以下</option>
<option value="1">19 到 30 岁</option>
<option value="2">30 岁以上</option>
</select>
你可以看到这里的 value 是用的数组的 index,所以如果你想自定义 value 的话,可以这样:
{{ Form::select('age', [
'young' => '18 以下',
'adult' => '19 到 30 岁',
'elder' => '30 岁以上']
)}}
上面的代码运行的结果大概如下:
<select name="age">
<option value="young">18 以下</option>
<option value="adult">19 到 30 岁</option>
<option value="elder">30 岁以上</option>
</select>
如果你要设置默认值,直接传第三个参数:
{{ Form::select('number', [0, 1, 2], 2) }}
这样 2 就会选中:
<select name="number">
<option value="0">0</option>
<option value="1">1</option>
<option value="2" selected="selected">2</option>
</select>
使用第四个参数传递其他的 html 属性如 class:
{{ Form::select('number', [1, 2, 3], null, ['class' => 'form-control']) }}
这样就可以给 select 加上 css class 了:
<select class="form-control" name="number">
<option value="0">1</option>
<option value="1">2</option>
<option value="2">3</option>
</select>
创建 select group
使用一下代码创建 select group:
{{ Form::select('feeling', [
'Happy' => ['Joyous', 'Glad', 'Ecstatic'],
'Sad' => ['Bereaved', 'Pensive', 'Down'],
])}}
这样得到的 html 如下:
<select name="feeling">
<optgroup label="Happy">
<option value="0">Joyous</option>
<option value="1">Glad</option>
<option value="2">Ecstatic</option>
</optgroup>
<optgroup label="Sad">
<option value="0">Bereaved</option>
<option value="1">Pensive</option>
<option value="2">Down</option>
</optgroup>
</select>
Happy Hacking