【问题标题】:laravel 8 - Get inserted data id via query builderlaravel 8 - 通过查询生成器获取插入的数据 id
【发布时间】: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,如果多个用户尝试保存可能会出错

【问题讨论】:

  • 谢谢您的工作,您可以将其添加为答案,以便我可以标记为 paa
  • $id = DB::table('appointments')->insertGetId($data);将此添加为答案
  • 这能回答你的问题吗? Laravel: get last Insert id from query builder
  • 它与链接的问题没有足够的不同,需要自己的答案。 This answer 特别是我所指的文档所描述的内容

标签: mysql database laravel laravel-8


【解决方案1】:

您可以使用insertGetId获取创建记录的id

https://laravel.com/docs/8.x/queries#auto-incrementing-ids

$id = DB::table('appointments')->insertGetId($data);

--

注意

如果表有自增id,使用insertGetId方法插入一条记录,然后取回ID

【讨论】:

    猜你喜欢
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 2017-11-05
    • 2020-03-16
    • 2011-07-21
    • 2015-09-04
    相关资源
    最近更新 更多