使用 laravelcollective/html 创建一个 select 表单

JellyBool

JellyBool

在 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

本文由 JellyBool 创作, 转载和引用遵循 署名-非商业性使用 2.5 中国大陆 进行许可。

共有 0 条评论