要生成默认选择项目的下拉列表,请执行以下操作:
echo Form::select('size', array('L' => 'Large', 'M' => 'Medium', 'S' => 'Small'), 'S');
所以我生成了一个下拉列表,默认选择了多个项目,方式如下:
echo Form::select('size', array('L' => 'Large', 'M' => 'Medium', 'S' => 'Small'), array('S', 'M'), array('multiple'));
但是如何获得多个选定值?
Input::get('size')
仅返回最后选择的字符串。
答案 0 :(得分:36)
首先,如果您希望默认选择多个项目,则必须将值数组作为第三个参数,而不是简单值。
例:
Form::select('size', array('L' => 'Large', 'M' => 'Medium', 'S' => 'Small'), array('S', 'M'), array('multiple'));
应显示选择了S和M的选择。
对于第二点,您应该尝试使用size[]
而不是size
这样的名称,它可以解决问题(因为您发布的选择不是一个简单的值,它的数组是值)
答案 1 :(得分:14)
常用Select语句
<select name="select_name" id="select_name" multiple="multiple">
工作流程是Laravel按名称获取表单元素。 要使其工作,请将名称更改为数组。
<select name="select_name[]" id="select_name" multiple="multiple">
这将使laravel将select的值作为数据数组获取。
答案 2 :(得分:1)
根据https://laravelcollective.com/docs/5.2/html#drop-down-lists
Form::select('size[]',['L' => 'Large', 'M' => 'Medium', 'S' => 'Small'], ['S', 'M'], ['multiple' => 'multiple', 'class' => 'form-control']);
顺便提一下,如果您希望能够在后端使用此字段作为数组,请注意下拉列表的名称( size [] )。
当您希望将关系用作值时,事情会变得棘手,例如
models
user => common fields
size => id, name, slug [
{id : 1 , name : Large, slug : L},
{id : 2 , name : Small, slug : S},
{id : 3 , name : Medium, slug : M}
]
user_size => id, user_id, size_id [
{id :1, user_id:1, size_id:1}
{id :2, user_id:1, size_id:3}
]
所以$user->colors
会返回类似
laravel collection
[
USER_SIZE => [ 'user_id' => 1 , size_id' => 1 ],
USER_SIZE => [ 'user_id' => 1, 'size_id' => 3 ]
]
你可以这样做,记住User Model
sizes
与SIZE Model
之间存在一对多的Form::select('size[]',['L' => 'Large', 'M' => 'Medium', 'S' => 'Small'], $user->sizes->pluck('size')->pluck('slug')->toArray(), ['multiple' => 'multiple', 'class' => 'form-control']);
关系
{{1}}
希望有所帮助
答案 3 :(得分:0)
正确的单词是
拔
在控制器中:
$skills = Skill::pluck('name', 'id');
$selectedSkills = $user->skills()->pluck('skill_user.id');
在刀片服务器中:
Form::select('skills[]', $skills, $selectedSkills, ['class' => 'form-control', 'multiple' => 'multiple']) }}