Reputation: 25
how to save multiple selcet in laravel when I try the script below, not to save
this store in controller
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);
}
this is code in view
<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>
Upvotes: 1
Views: 2074
Reputation: 390
i think you should use 'save' function
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);
}
Upvotes: 1
Reputation: 912
Well, u can modify your array first before save it to database. I assume your resep column type is varchar. Here's my solution
$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 function is to convert $resep array to string. You can change it back to array with json_decode function
json_decode($resep);
Upvotes: 0
Reputation: 372
Why do not you try looping through your multiple select value and save the array's element: Like this : foreach($request->resep as $item){..then save your data here..}
.
Upvotes: 1