将默认值添加到 Laravel form::select 中的 select 列表

Add default value to select list in Laravel form::select

简单的问题,我希望。

我需要将默认值添加到我的 select 列表 'Please Select',并将其设置为禁用。

<select name="myselect" id="myselect">
  <option value="" disabled>Please Select</option>
  <option value="1">Item 1</option>
  <option value="2">Item 2</option>
</select>

我目前的 laravel form::select 是

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

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

您可以这样使用 array_merge

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

或者您可以在 select:

之前的某处设置占位符
$categories[''] = 'Please Select';

更新

要添加禁用属性,您可以试试这个:(未测试)

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

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

$categories = Category::lists('name', 'id');
$categories->prepend('None');

或者只放占位符,例如:

[
    'class' => 'form-control',
    'id' => 'myselect',
    'placeholder' => 'None'
]

这样就可以了。

$categories = Category::lists('name', 'id');
$categories->prepend('None', 0);

Laravel 5.3

{{ Form::select('role', ['' => 'Select Role'] +$roles, null, ['class' => 'form-control']) }}

我为此 post 提出了我的解决方案。我希望能对某人有所帮助

我使用 php 函数向模型数组添加一个选项

array_unshift($model, ['value' => '', 'name' => 'Select value']);

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

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

我用过占位符,它对我有用

{!! Form::select('supplier', $suppliers, null, ['class' => 'form-control', 'placeholder' => 'Please Select']) !!}

为了,在前面加上空值Select

$categories = Category::lists('name', 'id');
$categories->prepend('Please Select', '');

此代码将填充类似这样的内容,

$categories[''] = 'Please Select';
$categories[0] = 'item 1',
$categories[1] = 'item 2';

现在你可以使用这样的东西:

{!! Form::select('myselect', $categories, '',['id'=>'myselect']) !!}

这也有助于表单验证,例如必需

现在,默认印度是 select

{{ Form::select('terms_agreement_type', [null => 'Select Control'] + ['India' => 'India', 'Nepal' => 'Nepal'], 'India') }}

你可以使用 pluck

控制器

$role = Model::all();

{{ Form::select('nameselect', $role->pluck('name', 'id')->prepend('default value...', ""))}}