这是我保存数据的方式
$data = array();
$data['date'] = $request->date;
$data['user_id'] = $request->user_id;
$save = DB::table('appointments')->insert($data);
if($save) {
foreach($request->time as $time) {
$data = array();
$data['appointment_id'] = $save->id;
$data['time'] = $time;
DB::table('times')->insert($data);
}
$notification = array(
'message' => 'Appoitment time created success',
'alert-type' => 'success'
);
}
但是对于另一个表与 appointments
表的连接
当我尝试使用此行中的方式保存数据时 $data['appointment_id'] = $save->id;
我得到并出错
尝试获取非对象的属性“id”
如何获取 appointments
插入成功 ID?
附注
$id = DB::table('appointments')->orderBy('id','desc')->first();
我不想用这种方式获取最后插入的数据 ID,如果多个用户尝试保存可能是错误的
答案 0 :(得分:2)
您可以使用 insertGetId
获取已创建记录的 id
:
https://laravel.com/docs/8.x/queries#auto-incrementing-ids
$id = DB::table('appointments')->insertGetId($data);
--
注意
<块引用>如果表有自增id,使用insertGetId方法插入一条记录,然后检索ID