您好我在我的数据库中使用客户端填充选择下拉列表,但是我想先占位符,例如Please select a Client
。有谁知道语法?
这是我到目前为止所做的:
@if(count($client_options)>0)
{{ Form::select('client', $client_options , Input::old('client'), array('placeholder' => 'Please select a client', 'id' => 'select_client', 'class' => 'chosen-select select', 'tabindex' => '2', )) }}
@endif
占位符属性但不起作用,是否有人知道如何操作?提前致谢
答案 0 :(得分:6)
假设您正在Laravel表单构建器中创建下拉列表。然后代码应该是这样的 -
在控制器中 -
$categories = Category::select('id', 'name')->lists('name', 'id')->prepend('Select a category', '')->toArray();
并在视野中 -
{!! Form::select('cat_id', $categories, old('cat_id')) !!}
使用Laravel 5.x进行测试。
或者你有一个像 -
这样的数组$array = ['1' => 'lorem ipsum', '4' => 'Another text'];
将此数组传递给视图后 -
{!! Form::select('cat_id', $array, old('cat_id')) !!}
没有占位符。如果你传递下面的数组 -
$array = ['' => 'Select category', '1' => 'lorem ipsum category', '4' => 'Another category'];
或者您希望传递一个集合以构建选择/下拉列表,然后
$array = $collection->prepend('Select a category', '')->toArray();
您需要传递一个数组才能构建下拉列表。
注意:
array_unshift
或array_merge
无法按预期工作!
答案 1 :(得分:4)
@if(count($client_options)>0)
$client_options[] = "Please select a Client";
{{ Form::select('client', $client_options , Input::old('client'), array('placeholder' => 'Please select a client', 'id' => 'select_client', 'class' => 'chosen-select select', 'tabindex' => '2', )) }}
@endif
答案 2 :(得分:0)
只需使用占位符在控制器中准备选择,然后将其传递给视图,如:
$client_options = ['Select a Client'] + Client::lists('field_name', 'id');
然后在您的视图中,您可以检查$client_options
中是否包含多个项目,例如:
@if(count($client_options) > 1)
{{
Form::select(
'client',
$client_options ,
Input::old('client'),
array(
'id' => 'select_client',
'class' => 'chosen-select select',
'tabindex' => '2'
)
)
}}
@endif
答案 3 :(得分:0)
如果有人在这里试图弄清楚如何将项目设置为选中,这里有一个提示。
表单中的第三个数组元素:select设置选择的项目:
Form::select('number', [0, 1, 2], 1)
第三个元素也可以是一个用于将多个项目设置为选中的数组:
Form::select('number', [0, 1, 2], [1,2])
占位符始终是数组元素0.要将占位符设置为选中,请确保Form:select数组元素3为零或数组中为零:
Form::select('number', [1, 2, 3], [0,1], ['class' => 'field', 'placeholder' => $var])