Выберите поле с первым пустым параметром


Кто-нибудь знает, как я могу установить в поле выбора первый параметр для пустого значения?

Я получаю данные из своей базы данных, и я хотел бы установить опцию по умолчанию как "Пожалуйста, выберите один вариант".

Author: Laerte, 2014-07-23

14 answers

Я обнаружил, что 'default'=>'Please select' не работает с обязательным атрибутом HTML5. Это действительно работает:

$listOfValues = [1 => 'Choice 1'];
Form::select('fieldname',[null=>'Please Select'] + $listOfValues);

Если вам не нравится современный синтаксис PHP,

$listOfValues = array(1 => 'Choice 1');
$listOfValues[null] = 'Please Select';
Form::select('fieldname', $listOfValues);

Но смысл в том, чтобы иметь метку для нулевого значения.

 42
Author: darkbluesun, 2017-10-24 02:05:00

Если вы используете HTML-пакет от LaravelCollective, выполните следующие действия.

Form::select('size', array('L' => 'Large', 'S' => 'Small'), null, ['placeholder' => 'Pick a size...']);
 20
Author: endroo, 2016-07-13 08:39:44

Для этого есть 2 способа:

{{ Form::select('user', array('default' => 'Please select one option') + $users, 'default') }}

Или

<select>
     <option selected disabled>Please select one option</option>
     @foreach($users as $user)
     <option value="{{ $user->id }}">{{ $user->name }}</option>
     @endforeach
</select>
 19
Author: mauricehofman, 2014-07-23 14:03:30

Для всех, кому нужно такое поведение, этот способ отлично работает:

Контроллер:

$entityArray = Entity::lists('name', 'id');
$entityArray->prepend('Select', 'Select');

Просмотр:

{!! Form::select('entity', $entityArray) !!}
 12
Author: Laerte, 2017-12-12 18:06:21

Это сработало для меня на Laravel 5.4.

{{ Form::select('agency', $agency, null, [
    'placeholder' => 'Please select ...',
    'class' => 'form-control'
]) }}
 4
Author: GRIFFIN KISIA, 2017-05-04 06:26:24

100% результат:

В контроллере:

$users = App\User::get()->lists('full_name', 'id')->prepend('Select user','');
return view('name of view')->with('users', $users);

В поле зрения:

{!! Form::select('who', $users, null, ['class' => 'form-control inline']) !!}

Я использую "laravelcollective/html": пакет "^5.3.0"

 3
Author: Matthew Skaman DonDobias, 2016-10-28 07:08:28

В Laravel 5.1 я решил эту проблему, выполнив

$categories = [''=>''] + Category::lists('name', 'id')->toArray();
return view('products.create', compact('categories'));

Или

$categories = [''=>''] + Category::lists('name', 'id')->all();
return view('products.create', compact('categories'));
 2
Author: sanu, 2016-02-28 10:08:35

Для коллекции Laravel 5 может потребоваться сначала преобразовать коллекцию в массив.

<?php
$defaultSelection = [''=>'Please Select'];
$users = $defaultSelection + $users->toArray();?> 

И примените $users как

{!! Form::select('user', $users); !!}
 1
Author: StevenW, 2015-10-29 22:53:32

В контроллере

$data['options']=Entity::pluck('name','id')->prepend('Please Select','');

return view('your_view_blade',$data);

В поле зрения лезвие

{!! Form::select('control_name',$options,null,['class'=>'your_class']) !!}
 1
Author: md asif rahman, 2016-08-31 18:00:44

Добавление в Laerte anwser

Вы можете сделать это в Blade level, просто выполнив команду:

{!! Form::select('entity', $entityArray) !!}
 0
Author: Hairmenu, 2016-03-19 06:54:18

Вам нужно манипулировать массивом перед представлением

Или, чтобы быть грязным, вы могли бы сделать это в тегах blade @php

    $users= [null => 'Empty'];

    $dbusers= User::pluck('id', 'name');

    $users= array_merge($users, $dbusers->toArray());

    return view('myview', compact('users'))

И затем вы можете сделать следующее в представлении

{{ Form::select('user',$users, ['class' => 'form-control']) }}
 0
Author: Mooseh, 2017-01-30 23:50:46

В laravel 5.2

Это сработало для меня

{!! Form::select('user', $users, null, array('class'=>'form-control', 'placeholder' => 'Please select')) !!}

Как я просто добавляю placeholder, и это сделало трюк

 0
Author: Yousef Altaf, 2017-03-27 11:56:47
{{ Form::select('parent_id', [null=>'Please Select'] + \App\Item::where('1','1')->pluck('name', 'id')->toArray()) }}
 0
Author: Gediminas, 2017-10-19 08:17:52
{ !! Form::select('country', $country, 'GB', ['id' = > 'country', 'class' = > 'form-control select2me']) !!}

Здесь $country - массив, содержащий множество стран, в этом массиве "Великобритания" по идентификатору "ГБ", который будет выбран по умолчанию.

 -1
Author: Rohan Jetha, 2015-11-27 15:33:40