Добавить значение по умолчанию для выбора списка в форме Laravel:: 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:: select

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

Как я могу изменить это, чтобы включить значение параметра по умолчанию?

Ответ 1

Вы можете использовать array_merge следующим образом:

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

В качестве альтернативы вы можете установить местозаполнитель где-то перед выбором:

$categories[''] = 'Please Select';

Update

Чтобы добавить отключенный атрибут, вы можете попробовать следующее: (untested)

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

Ответ 2

В Laravel 5.1 вы можете добавить элемент по умолчанию, если список представляет собой коллекцию (результат Eloquent::lists())

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

Ответ 3

Добавьте 'placeholder' => 'Please Select' в Form::select.

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

Ответ 4

Или просто поместите заполнитель, например:

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

Это сделает трюк.

Ответ 5

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

Ответ 6

Пожалуйста, выберите с пустым значением.

$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']) !!}

Это также полезно для проверки формы, как требуется.

Ответ 7

Я поставлю свое решение для этого сообщения. Надеюсь, кто-то может помочь кому-нибудь.

Я использую функцию php для добавления опции к массиву модели

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

Ответ 8

Я использовал placeholder и работал у меня

{!! Форма:: select ('поставщик', $поставщики, null, ['class' = > 'form-control', 'placeholder' = > 'Please Select'])!!}

Ответ 9

Теперь по умолчанию Индия была выбрана

{{Form :: select ('rules_agreement_type', [null => 'Выбрать элемент управления'] + ['India' => 'India', 'Nepal' => 'Nepal'], 'India')}}

Ответ 10

Laravel 5.3

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