bootstrap-select.js & Laravel 窗体门面 -- 无 select "value"

bootstrap-select.js & Laravel Form Facade -- no select "value"

当结合使用 bootstrap-select.js 和 Laravel 表单外观时,不会传输任何值。 dd() 说空

{!! Form::select('user', $users, null, array('class' => 'selectpicker show-tick', 'data-live-search' => 'true', 'id' => 'user_select')) !!}

然而,当使用不带 bootstrap-select 的表单外观时,如下所示:

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

有效。

dd() 表示 1

当使用 bootstrap select 时,您应该像这样获取输入:

Input::get('id_of_your_input');

当不使用 bootstrap select 时,您应该这样做:

Input::get('name_of_your_input');

Coz bootstrap select 创建另一个要使用新名称发送的输入(从原始输入的 ID 中提取) :)

更新 您可以使用 dd(Input::all()) 查看发送到控制器的所有输入及其名称。

您案例的最简单再现:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.11.2/css/bootstrap-select.min.css"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.11.2/js/bootstrap-select.min.js"></script>

{!! Form::open() !!}
    <select class="selectpicker show-tick" data-live-search="true" name="user">
        <option value="1">Marvin Test</option>
        <option value="2">Lorem Ipsum</option>
        <option value="3">Amy Johnson</option>
        <option value="4">sdsd</option>
        <option value="5">lol lol</option>
        <option value="6">test test</option>
    </select>
    {!! Form::submit() !!}
{!! Form::close() !!}

dd($request->all() 给出:

array:2 [▼
  "_token" => "GPsRkSn3GVK3zWZmJ2Rf7rQlZ75WVZ2c1JxHZgjy"
  "user" => "6"
]

令牌隐藏字段是自动添加的。这就是为什么我在评论中问你是否在 Form::openForm::close

之间