Laravel数据库选择带占位符的下拉列表

时间:2014-08-09 20:50:16

标签: php select laravel placeholder

您好我在我的数据库中使用客户端填充选择下拉列表,但是我想先占位符,例如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 

占位符属性但不起作用,是否有人知道如何操作?提前致谢

4 个答案:

答案 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_unshiftarray_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])