我有一个传递给视图的数组,该数组包含以下内容:
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>
在我的控制器中,我有以下内容:
CONTROLLER
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',
];
答案 0 :(得分:0)
如果您想从阵列中的表单中接收公司名称,则可以像这样简单地在控制器中调整pluck
方法:
$companies = DB::table('vacancies')->distinct()->select('company')->pluck('company', 'company')->toArray();
pluck
方法的第二个参数将是键。如果省略,它将是一个索引数组
现在,您将像这样将数组传递给视图:
array:353 [▼
"Company name" => "Company name"
"Another name" => "Another name"
....
]
您选择的表单的值将是键(公司名称),该键将被传递回控制器以保存数据。那是你想做的吗?