将bootstrap-select.js与Laravel Form外观结合使用时,不会传输任何值。 dd()
表示空
{!! Form::select('user', $users, null, array('class' => 'selectpicker show-tick', 'data-live-search' => 'true', 'id' => 'user_select')) !!}
但是当使用没有bootstrap的表单Facade时 - 选择如下:
{!! Form::select('user', $users, null) !!}
它有效。
dd()
说1
答案 0 :(得分:3)
使用bootstrap select时,您应该获取如下输入:
Input::get('id_of_your_input');
当不使用bootstrap选择时,你应该这样做:
Input::get('name_of_your_input');
Coz bootstrap select创建另一个要用新名称发送的输入(从原始输入的ID中提取) :)
<强>更新强>
您可以使用dd(Input::all())
查看发送到控制器的所有输入及其名称。
答案 1 :(得分:0)
最简单地复制您的案例:
<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::open
和Form::close
之间