首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在laravel中获得最后插入的in

问如何在laravel中获得最后插入的in
EN

Stack Overflow用户
提问于 2016-02-20 09:20:55
回答 2查看 6.6K关注 0票数 3

我同时插入多行,例如2行。

代码语言:javascript
复制
$multiple_rows = [
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
];
DB::table('users')->insert($multiple_rows);

我怎样才能得到那些插入的ids。

我在做这件事,现在是这样。

代码语言:javascript
复制
foreach($multiple_rows as $row){
  DB::table('users')->insert($row);
  $record_ids[] = DB::getPdo()->lastInsertId();
}

任何其他好的方法都可以做到这一点,而不用每次插入一行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-20 14:07:21

您可以这样做:

代码语言:javascript
复制
$latestUser = DB::table('users')->select('id')->orderBy('id', 'DESC')->first();

$multiple_rows = [
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
];

DB::table('users')->insert($multiple_rows);

$users = DB::table('users')->select('id')->where('id', '>', $latestUser->id)->get();
票数 8
EN

Stack Overflow用户

发布于 2016-02-20 09:37:28

如果你真的需要所有插入的ID

代码语言:javascript
复制
$dataArray = [
    ['name' => 'ABC'],
    ['name' => 'DEF']
];

$ids = [];

foreach($dataArray as $data)
{
     $ids[] = DB::table('posts')->insertGetId($data);

}

要用大量插入获得所有id,我认为最好的方法是先得到表中的最后一个id,然后进行大量的插入并得到最后一个id。理论上,他们必须跟随,除非有一个插入从另一个连接。为了避免这种情况,解决方案是一个事务。

更新

还可以阅读文档

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35521277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档