我使用基本注册表格,但我想添加多项选择,一个用户可以具有多种技能,并在注册时选择它们。 我的问题是,当我选择倍数值时Laravel只取最后一个值,因此我在网上搜索了一个解决方案,他们说要在班级名称后添加[],所以我要这样做:
<div class="form-group row">
<div class="col-md-6">
<?php $competences = \App\Competence::all(); ?>
<select name="competences[]" multiple="" class="form-control">
<option value="" selected disabled style="display:none">choose your school</option>
@foreach ($competences as $competence)
<option value="{{ $competence->id }}">{{ $competence->name }}</option>
@endforeach
</select>
</div>
</div>
但是,现在,当我提交表单时,页面会重新加载并保留在注册表单中,而用户没有注册...我不知道该怎么办,你们中有谁有解决方案?
这是我在registerController中检查能力的方法
$competences = $data['competences'];
foreach ($competences as $comp){
$user->competences()->save(Competence::find($comp));
}
答案 0 :(得分:0)
在Blade.php中使用multiple="multiple"
或仅使用multiple
:
<div class="form-group row">
<div class="col-md-6">
<?php $competences = \App\Competence::all(); ?>
<select name="competences[]" class="form-control" multiple>
<option value="" selected disabled style="display:none">choose your school</option>
@foreach ($competences as $competence)
<option value="{{ $competence->id }}">{{ $competence->name }}</option>
@endforeach
</select>
</div>
</div>
然后在您的控制器中,通过仅打印$data
return $data;