如何获取Laravel上另一个表的值?
我试图只获取表上id列的值,但它返回如何获取Laravel上另一个表的值?,laravel,controller,Laravel,Controller,我试图只获取表上id列的值,但它返回 SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '[{"id":1}]' for column 'id_jenis' at row 1 (SQL: insert into `pesanan` (`name`, `telpon`, `alamat`, `id_jenis`, `jenis`, `do`, `updated_at`, `created_at`) values (Pradi
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '[{"id":1}]' for column 'id_jenis' at row 1 (SQL: insert into `pesanan` (`name`, `telpon`, `alamat`, `id_jenis`, `jenis`, `do`, `updated_at`, `created_at`) values (Pradita Candrani, 0813, Jalan Sunan Ampel Kasin, [{"id":1}], Cuci Basah Standar, None, 2019-11-27 12:18:35, 2019-11-27 12:18:35))
这是我在控制器上的代码
public function pesan(Request $request){
$harga = Harga::select('id')->where('nama',$request->jenis)->get();
Pesanan::create([
'name' => $request->nama,
'telpon' => $request->telpon,
'alamat' => $request->alamat,
'id_jenis' => $harga,
'jenis' => $request->jenis,
'do'=>$request->do
]);
return redirect('/pesanan');
}
我怎样才能解决这个问题?请帮助您现在正在获取对象并将其直接传递给
id\u jenis
。使用first()
而不是get()
。并在id\u jenis
中传递$harga->id
$harga = Harga::select('id')->where('nama',$request->jenis)->first();
Pesanan::create([
'name' => $request->nama,
'telpon' => $request->telpon,
'alamat' => $request->alamat,
'id_jenis' => $harga->id,
'jenis' => $request->jenis,
'do'=>$request->do
]);
如果要在id\u jenis
中存储多个id,请使用Pull
$harga = Harga::where('nama',$request->jenis)->pluck('id')->toArray();
在这里,您将在数组中获得多个ID。因此,使用json\u encode
将json存储在db中,如下所示
Pesanan::create([
'name' => $request->nama,
'telpon' => $request->telpon,
'alamat' => $request->alamat,
'id_jenis' => json_encode($harga),
'jenis' => $request->jenis,
'do'=>$request->do
]);
$harga=harga::select('id')->where('nama',$request->jenis)->get()代码>
在这一行之后,写下
\Log::info(['Harga',$Harga])代码>
并在/storage/logs/laravel.log
欢迎来到调试的奇妙世界如果有帮助,请选择答案。