Laravel:从查询构建器获取最后一个Insert id

Pal*_*lon 5 laravel-5

我是laravel的新手,并尝试从此查询中获取最后一个插入的id:

DB::select("INSERT INTO current_survey (`name`, `created_by`, `description`)  SELECT `name`, `created_by`, `description` FROM survey WHERE id=survey_id");
Run Code Online (Sandbox Code Playgroud)

这个查询运作良好,任何人都可以建议我如何在laravel中实现这一点?

谢谢

kun*_*nal 7

尝试一次: -

$id = DB::getPdo()->lastInsertId();
Run Code Online (Sandbox Code Playgroud)


muh*_*ail 6

根据laravel文档

https://laravel.com/docs/5.8/queries#inserts

如果表有自动递增的 id,则使用 insertGetId 方法插入一条记录,然后检索该 ID:

$id = DB::table('users')->insertGetId(
    ['email' => 'john@example.com', 'votes' => 0]
);
Run Code Online (Sandbox Code Playgroud)