从多个 select 下拉列表中插入 2 个表(透视)数组值
insert into 2 tables (pivot) array values from multiple select dropdown list
我与事件和年份一起工作,一个事件可以在几年内发生,一年可以有
几个事件(枢轴 table 在两个 table 之间创建)。
我在多个列表中更改我的单个下拉列表:
<select id="year_id" type="text" class="form-control selectpicker @error('year_id') is-invalid @enderror" name="year_id[]" required multiple>
<option disabled>--Choisir--</option>
@foreach($years as $year)
@if(old('year') == $year->id)
<option value="{{ $year->id }}" selected>{{ $year->name }}</option>
@else
<option value="{{ $year->id }}">{{ $year->name }}</option>
@endif
@endforeach
</select>
目标是 select 几年同一事件。
我不知道为什么,但我想我无法验证表单。
这是我的控制器代码:
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|string|max:255',
'mnemonique' => 'required|string|max:255',
'color' => 'required|string|max:255',
'year_id[]' => 'required|array',
'year_id[].*' => 'required|integer|exists:years,id'
]);
$evenement = new Evenement();
//dd($validatedData);
// $evenement->create($validatedData);
$evenement = Evenement::create($validatedData);
$evenement->years()->sync([$validatedData['year_id[]']]);
我无法将事件插入枢轴 table 并将新事件插入事件 table。
如果我用dd(),我还是刷新了表单,我想我没有进入控制器...
你看到什么了吗?
提前致谢。
将验证规则更改为
'year_id' => 'required|array',
'year_id.*' => 'required|integer|exists:years,id'
在视图中显示错误消息
@error('year_id')<div class="invalid-feedback">{{$message}}</div> @enderror
和
@if($errors->has('year_id.*')) <div class="invalid-feedback">Selected Year doesnt exists</div> @endif
正在保存到数据库中
$evenement->years()->sync($validatedData['year_id']);
我与事件和年份一起工作,一个事件可以在几年内发生,一年可以有 几个事件(枢轴 table 在两个 table 之间创建)。
我在多个列表中更改我的单个下拉列表:
<select id="year_id" type="text" class="form-control selectpicker @error('year_id') is-invalid @enderror" name="year_id[]" required multiple>
<option disabled>--Choisir--</option>
@foreach($years as $year)
@if(old('year') == $year->id)
<option value="{{ $year->id }}" selected>{{ $year->name }}</option>
@else
<option value="{{ $year->id }}">{{ $year->name }}</option>
@endif
@endforeach
</select>
目标是 select 几年同一事件。
我不知道为什么,但我想我无法验证表单。
这是我的控制器代码:
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|string|max:255',
'mnemonique' => 'required|string|max:255',
'color' => 'required|string|max:255',
'year_id[]' => 'required|array',
'year_id[].*' => 'required|integer|exists:years,id'
]);
$evenement = new Evenement();
//dd($validatedData);
// $evenement->create($validatedData);
$evenement = Evenement::create($validatedData);
$evenement->years()->sync([$validatedData['year_id[]']]);
我无法将事件插入枢轴 table 并将新事件插入事件 table。
如果我用dd(),我还是刷新了表单,我想我没有进入控制器...
你看到什么了吗?
提前致谢。
将验证规则更改为
'year_id' => 'required|array',
'year_id.*' => 'required|integer|exists:years,id'
在视图中显示错误消息
@error('year_id')<div class="invalid-feedback">{{$message}}</div> @enderror
和
@if($errors->has('year_id.*')) <div class="invalid-feedback">Selected Year doesnt exists</div> @endif
正在保存到数据库中
$evenement->years()->sync($validatedData['year_id']);