如何保存多选值?
How to save multi selected values?
我在罪犯和犯罪之间有一对多的关系,在物种和犯罪之间也有一对多的关系。
罪犯
ID
first_name
last_name
罪行
ID
culprit_id
species_id
fishing_method_id
物种
ID
species_name
fishing_methods
ID
fishing_methods_姓名
我要达成的目标是为了一次犯罪而拯救许多物种
我的表格
{{ Form::select('species_id',$speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
我的控制器
public function store(CreateCrimeRequest $request)
{
$input = $request->all();
// $data = implode(',', $input);
// dd($data);
$crime = $this->crimeRepository->create($data);
Flash::success('Crime saved successfully.');
return redirect(route('crimes.index'));
}
当我从下拉列表中 select 3 个物种时,最后一个 selected 物种被保存,而其他两个则没有。
谁能帮忙解决这个问题
您的 select 名称属性中缺少 [ ]
{{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
你在这里缺少 ():
$crime = $this->crimeRepository->create($data);
必须是:
$crime = $this->crimeRepository()->create($data);
你也可以使用 createMany:
$crime = $this->crimeRepository()->createMany($data);
此处有更多示例:https://laravel.com/docs/5.5/eloquent-relationships#the-create-method
好吧,您必须对其进行编码以在数据透视表中创建三个记录 table。我假设你有 table 个物种 你有 table 个犯罪。您需要一个 belongsToMany 关系来为一种犯罪存储许多物种和 crime_species
的枢轴 table 然后您将 species
附加到 crime
并且您的 select 名称属性中缺少 [ ]
{{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
我在罪犯和犯罪之间有一对多的关系,在物种和犯罪之间也有一对多的关系。
罪犯 ID first_name last_name
罪行 ID culprit_id species_id fishing_method_id
物种 ID species_name
fishing_methods ID fishing_methods_姓名
我要达成的目标是为了一次犯罪而拯救许多物种
我的表格
{{ Form::select('species_id',$speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
我的控制器
public function store(CreateCrimeRequest $request)
{
$input = $request->all();
// $data = implode(',', $input);
// dd($data);
$crime = $this->crimeRepository->create($data);
Flash::success('Crime saved successfully.');
return redirect(route('crimes.index'));
}
当我从下拉列表中 select 3 个物种时,最后一个 selected 物种被保存,而其他两个则没有。 谁能帮忙解决这个问题
您的 select 名称属性中缺少 [ ]
{{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
你在这里缺少 ():
$crime = $this->crimeRepository->create($data);
必须是:
$crime = $this->crimeRepository()->create($data);
你也可以使用 createMany:
$crime = $this->crimeRepository()->createMany($data);
此处有更多示例:https://laravel.com/docs/5.5/eloquent-relationships#the-create-method
好吧,您必须对其进行编码以在数据透视表中创建三个记录 table。我假设你有 table 个物种 你有 table 个犯罪。您需要一个 belongsToMany 关系来为一种犯罪存储许多物种和 crime_species
的枢轴 table 然后您将 species
附加到 crime
并且您的 select 名称属性中缺少 [ ]
{{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}