选择第一个选项为空的框


Select box with first option empty

如何将选择框中的第一个选项设置为空值?

我正在从我的数据库中获取数据,我想将默认设置为"请选择一个选项"。

我发现'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);

但关键是要有一个空值的标签

如果您正在使用LaravelCollective的HTML包,您需要执行以下操作。

Form::select('size', array('L' => 'Large', 'S' => 'Small'), null, ['placeholder' => 'Pick a size...']);

有两种方法:

{{ 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>

对于任何需要这种行为的人来说,这种方式工作得很好:

控制器:

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

视图:

{!! Form::select('entity', $entityArray) !!}

这对我在Laravel 5.4上有效。

{{ Form::select('agency', $agency, null, [
    'placeholder' => 'Please select ...',
    'class' => 'form-control'
]) }}

在控制器

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

{!! Form::select('control_name',$options,null,['class'=>'your_class']) !!}

100% result:

在控制器:

$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" package

This works for me

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

就像我刚刚加了placeholder一样它就变成了

对于Laravel 5集合,您可能需要首先将集合转换为数组。

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

和应用$users作为

{!! Form::select('user', $users); !!}

在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'));

在视图

{! !Form::select('qualification_level', $qualification, old(' qualification_level'), ['class' => ' Form -control select2', 'placeholder' => " ]) !!}

在控制器中$资格= ' App '资格::拔("名字","id") ->预谋("请选择");

添加到Laerte答案

您可以在Blade level中通过发出命令来完成:

{!! Form::select('entity', $entityArray) !!}

您需要在视图之前操作数组

或者更乱一点,可以写在blade @php tags

    $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']) }}
{{ Form::select('parent_id', [null=>'Please Select'] + 'App'Item::where('1','1')->pluck('name', 'id')->toArray()) }}
{ !! Form::select('country', $country, 'GB', ['id' = > 'country', 'class' = > 'form-control select2me']) !!}

这里$country是包含多个国家的数组,其中"great britain"按id "GB"默认选择