如何在 laravel 8 中保存多项选择?
Posted
技术标签:
【中文标题】如何在 laravel 8 中保存多项选择?【英文标题】:how to save multiple select in laravel 8? 【发布时间】:2021-07-19 12:10:45 【问题描述】:当我尝试下面的脚本时如何在 laravel 中保存多个选择,而不是保存
控制器中的这个商店
public function store(Request $request)
$id = $request->id;
$post = Rek_medik::updateOrCreate(['id' => $id],
[
'kode_rekmed' => $request->kode_rekmed,
'kode_register' => $request->kode_register,
'kode_pasien' => $request->kode_pasien,
'nama_pemeriksa' => $request->nama_pemeriksa,
'tgl_rekmed' => Carbon::now(),
'anamnesis' => $request->anamnesis,
'pemeriksaan' => $request->pemeriksaan,
'resep' => $request->resep,
]);
return response()->json($post);
这是视图中的代码
<div class="form-group">
<label for="resep">Resep</label>
<select class="select2bs4" id="resep" multiple="multiple" name="resep[]" data-placeholder="Select a State"
style="width: 100%;">
@foreach($obat as $row)
<option value="$row->kd_obat " >$row->kd_obat </option>
@endforeach
</select>
</div>
【问题讨论】:
【参考方案1】:你为什么不尝试循环遍历你的多选值并保存数组的元素:像这样:foreach($request->resep as $item)..then save your data here..
。
【讨论】:
它不起作用,因为它保存到2行输入列而不是1输入行,我怎么能是一行? 将您的 resep 列数据类型更改为接受数组或对象的类型。我确信这会将$request->resep
保存在一行中【参考方案2】:
我认为你应该使用“保存”功能
public function store(Request $request)
$id = $request->id;
$post = Rek_medik::updateOrCreate(['id' => $id],
[
'kode_rekmed' => $request->kode_rekmed,
'kode_register' => $request->kode_register,
'kode_pasien' => $request->kode_pasien,
'nama_pemeriksa' => $request->nama_pemeriksa,
'tgl_rekmed' => Carbon::now(),
'anamnesis' => $request->anamnesis,
'pemeriksaan' => $request->pemeriksaan,
'resep' => $request->resep,
]);
$result = $post->save();
return response()->json($post);
【讨论】:
【参考方案3】:好吧,您可以先修改您的数组,然后再将其保存到数据库。我假设您的 resep 列类型是 varchar。这是我的解决方案
$id = $request->id;
foreach($request->resep[] as $r)
$resep[] = $r;
$post = Rek_medik::updateOrCreate(['id' => $id],
[
'kode_rekmed' => $request->kode_rekmed,
'kode_register' => $request->kode_register,
'kode_pasien' => $request->kode_pasien,
'nama_pemeriksa' => $request->nama_pemeriksa,
'tgl_rekmed' => Carbon::now(),
'anamnesis' => $request->anamnesis,
'pemeriksaan' => $request->pemeriksaan,
'resep' => json_encode($resep),
]);
return response()->json($post);
json_encode 函数是将 $resep 数组转换为字符串。您可以使用 json_decode 函数将其更改回数组
json_decode($resep);
【讨论】:
这有效,但我不使用 foreach 仍然有效,只需编辑 resep 'resep' => $request->resep, to 'resep' => json_encode($resep),以上是关于如何在 laravel 8 中保存多项选择?的主要内容,如果未能解决你的问题,请参考以下文章
当尚未在编辑表单中选择图像时,如何默认使用当前图像更新帖子。我正在使用 laravel 8