添加默认值以选择Laravel form :: select中的列表

use*_*734 20 php laravel laravel-4

简单的问题,我希望.

我需要在我的选择列表'Please Select'中添加一个默认值,并将其设置为disabled.

<select name="myselect" id="myselect">
  <option value="" disabled>Please Select</option>
  <option value="1">Item 1</option>
  <option value="2">Item 2</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我目前的laravel形式:: select是

{{
Form::select(
    'myselect',
    $categories,
    $myselectedcategories,
    array(
        'class' => 'form-control',
        'id' => 'myselect'
    )
}}
Run Code Online (Sandbox Code Playgroud)

如何修改此选项以包含默认选项值?

nte*_*rms 27

在Laravel 5.1中,如果列表是一个集合,您可以在前面添加默认项目(结果为a Eloquent::lists())

$categories = Category::lists('name', 'id');
$categories->prepend('None');
Run Code Online (Sandbox Code Playgroud)

  • 你可能希望第二行是`$ categories-> prepend('None',0)`给它一个键,以便保存id. (3认同)

luk*_*ter 24

你可以array_merge像这样使用:

{{
Form::select(
    'myselect',
    array_merge(['' => 'Please Select'], $categories),
    $myselectedcategories,
    array(
        'class' => 'form-control',
        'id' => 'myselect'
    ))
}}
Run Code Online (Sandbox Code Playgroud)

或者,您可以在选择之前的某处设置占位符:

$categories[''] = 'Please Select';
Run Code Online (Sandbox Code Playgroud)

更新

要添加disabled属性,您可以尝试:(未经测试)

{{
Form::select(
    'myselect',
    array_merge(['' => ['label' => 'Please Select', 'disabled' => true], $categories),
    $myselectedcategories,
    array(
        'class' => 'form-control',
        'id' => 'myselect'
    ))
}}
Run Code Online (Sandbox Code Playgroud)


小智 8

添加'placeholder' => 'Please Select'Form::select.

{!!
  Form::select(
    'myselect', 
    $categories, 
    null, 
    ['class' => 'form-control', 'placeholder' => 'Please Select'])
!!}
Run Code Online (Sandbox Code Playgroud)