在laravel中批量插入后获取记录ID

dev*_*l Ψ 5 php laravel laravel-5

我正在使用laravel 5.4我希望在将它们插入表格后得到记录ID.这是我要插入的数据,它存储在数组中

$data = [
  [
    "count" => "100",
    "start_date" => 1515628800
  ],
  [
    "count" => "102",
    "start_date" => 1515715200
  ]
];
Run Code Online (Sandbox Code Playgroud)

在这里我一次插入项目数组

\Auth::user()->schedule()->insert($data);
Run Code Online (Sandbox Code Playgroud)

但是这个方法返回了boolean,我希望在插入这些新项目之后得到这些新项目的ID(或所有列),我该怎么做?它是否会用eloquent或完成并不重要querybuilder.我已经尝试过insertGetId方法,但它似乎不适用于多维数组.如果不能用laravel,那么实现它的最佳方法是什么?

onl*_*mas 3

解决方法:选择最高的 PK 值,您应该知道它们具有哪些值。不过,您可能需要锁定以防止与其他用户竞争。

编辑:

锁定表安排写入;

//选择最后一个ID

解锁桌子;

id 列表就是last id - insert count

  • 老实说:我不知道,因为我没有尝试过。然而,没有太多其他选择。当您同时有很多用户时,锁定表也不是完美的。 (2认同)