laravel 8 - 通过查询生成器获取插入的数据 id
Posted
技术标签:
【中文标题】laravel 8 - 通过查询生成器获取插入的数据 id【英文标题】:laravel 8 - Get inserted data id via query builder 【发布时间】:2021-06-25 20:36:47 【问题描述】:这是我保存数据的方式
$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?
PS
$id = DB::table('appointments')->orderBy('id','desc')->first();
我不想通过这种方式获取最后一个插入数据 ID,如果多个用户尝试保存可能会出错
【问题讨论】:
insertGetId
谢谢您的工作,您可以将其添加为答案,以便我可以标记为 paa
$id = DB::table('appointments')->insertGetId($data);将此添加为答案
这能回答你的问题吗? Laravel: get last Insert id from query builder
它与链接的问题没有足够的不同,需要自己的答案。 This answer 特别是我所指的文档所描述的内容
【参考方案1】:
您可以使用insertGetId
获取创建记录的id
:
https://laravel.com/docs/8.x/queries#auto-incrementing-ids
$id = DB::table('appointments')->insertGetId($data);
--
注意
如果表有自增id,使用insertGetId方法插入一条记录,然后取回ID
【讨论】:
以上是关于laravel 8 - 通过查询生成器获取插入的数据 id的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 8 中使用 PostgreSQL 中的子查询通过 group by 子句获取行值?
laravel 8:插入方法在 eloquent 中获取最后一个插入 id(插入方法)
我可以在 Facadesdb 插入中获取主键以供直接使用 - Laravel 8
Laravel 8 - MS SQL - 查询生成器 - 使用 DB Raw。尝试使代码正确,使其像工作的 MSSQL 代码一样工作