0

我在罪犯和犯罪之间有一对多的关系,在物种和犯罪之间也有一对多的关系。

罪魁祸首 id first_name last_name

犯罪 id 罪魁祸首_id 物种_id 钓鱼_方法_id

物种 ID 物种名称

钓鱼方法 id 钓鱼方法名称

我需要实现的是为一项罪行拯救许多物种

我的表格

   {{ 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'));
     }

当我从下拉列表中选择 3 个物种时,最后选择的物种被保存,而其他两个则没有。任何人都可以帮助解决这个问题

4

3 回答 3

0

您的选择名称属性中缺少[ ]

{{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
于 2020-06-15T03:31:40.977 回答
0

您在这里缺少 () :

 $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

于 2020-06-15T03:31:44.753 回答
0

好吧,您必须对其进行编码以在数据透视表中创建三个记录。我假设你有一张物种表你有一张犯罪表。您需要一个 belongsToMany 关系来存储一个犯罪的多个物种,crime_species然后您将附加species到一个数据透视表crime

并且您的选择名称属性中缺少[ ]

{{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
于 2020-06-16T03:33:57.357 回答