如何在 laravel 8 中保存多个 select?

how to save multiple select in laravel 8?

当我尝试下面的脚本时,如何在 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>

为什么不尝试遍历多个 select 值并保存数组的元素:像这样:foreach($request->resep as $item){..then save your data here..}.

嗯,你可以先修改你的数组,然后再将它保存到数据库。我假设您的 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);

我认为你应该使用 'save' 函数

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);
}