LARAVEL 5.5-将数组保存到数据库

劳森

我有一个数组,已传递给我的视图,该数组包含以下内容:

array:353 [▼
0 => "Company name"
1 => "Another name"
....
]

假设用户选择了以上两个选项。虽然我可以从数据库中的表单成功保存多个选择选项,但我需要保存名称而不是数字。例如,在phpmyadmin中,target_companies列将另存为[“ 0”,“ 1”]而不是[公司名称“,”另一个名称“]。

我通过以下方式将此数据传递到我的视图中:

$companies = DB::table('vacancies')->distinct()->select('company')->pluck('company')->toArray();

在我看来,我已经做到了:

视图

<div class="form-group">
  {{ Form::label('target_companies', 'Select Company')}}
  {{ Form::select('target_companies[]', $companies, null, ['multiple'=>true, 'class'=>'form-control']) }}
</div>

在我的控制器中,我有以下几点:

控制器

public function update(Request $request)
{
  $this-> validate($request, [
      'target_sector' => 'required|max:255',
      'target_skillsets' => 'required|max:255',
      'target_companies'=> 'required|max:255',
      'target_locations'=> 'required|max:255',

  ]);
  //Create Post
  $id = Auth::user()->id;
  $admin = Admin::find($id);
  $admin->target_companies = $request->input('target_companies');
  $admin->target_sector = $request->input('target_sector');
  $admin->target_skillsets = $request->input('target_skillsets');
  $admin->target_locations = $request->input('target_locations');

  $admin->save();

  return redirect('/admin')->with('success', 'Preferences Updated', 'admin',$admin);
}

最后,该模型具有:

protected $casts= [
 'target_companies'=> 'array',
];
标记

如果要从阵列内部的表单中接收公司名称,则可以pluck像下面这样简单地在控制器中调整方法:

$companies = DB::table('vacancies')->distinct()->select('company')->pluck('company', 'company')->toArray();

pluck方法的第二个参数将是键。如果省略,它将是一个索引数组

现在,您将像这样将数组传递给视图:

array:353 [▼
    "Company name" => "Company name"
    "Another name" => "Another name"
    ....
]

您选择的表单的值将是键(公司名称),该键将被传递回控制器以保存数据。那是你想做的吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章