如何在laravel中获取最后插入的id

Bel*_*Not 3 php laravel laravel-5.2

我在同一时间插入多行,比如2行

$multiple_rows = [
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
];
DB::table('users')->insert($multiple_rows);
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得那些插入的ID.

我这样做,现在就这样.

foreach($multiple_rows as $row){
  DB::table('users')->insert($row);
  $record_ids[] = DB::getPdo()->lastInsertId();
}
Run Code Online (Sandbox Code Playgroud)

任何其他好的方法,每次都不插入单行.

use*_*178 7

您可以执行以下操作:

$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();
Run Code Online (Sandbox Code Playgroud)


Ren*_*V R 5

如果您确实需要所有插入的ID

$dataArray = [
    ['name' => 'ABC'],
    ['name' => 'DEF']
];

$ids = [];

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

}
Run Code Online (Sandbox Code Playgroud)

为了获得带有大量插入的所有id,我认为一个好方法是首先获取表中的最后一个id,进行大量插入并获取最后的id。从理论上讲,除非有其他连接插入,否则它们必须遵循。为了避免解决方案是交易

更新资料

另请阅读文档