【问题标题】:How to save multi selected values?如何保存多选值?
【发布时间】:2020-06-15 02:19:10
【问题描述】:

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

罪魁祸首 ID 名 姓氏

犯罪 ID 罪魁祸首 物种ID Fishing_method_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 个物种时,最后选择的物种会被保存,而其他两个则不会。 谁能帮忙解决这个问题

【问题讨论】:

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

标签: laravel infyom


【解决方案1】:

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

{{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}

【讨论】:

  • hello new error 添加 [] 到 species_id[] 时出现错误是数组到字符串的转换
【解决方案2】:

你在这里缺少 ():

 $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

【讨论】:

    【解决方案3】:

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

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

    {{ Form::select('species_id[]', $speciesRepository, array('Action'), array('multiple', 'class' =>'form-control')) }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-04
      • 2016-04-22
      • 2014-10-26
      • 2023-03-25
      • 2020-06-03
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      相关资源
      最近更新 更多