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

时间:2017-05-16 11:26:57

标签: 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");

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

由于

3 个答案:

答案 0 :(得分:5)

尝试一次: -

$id = DB::getPdo()->lastInsertId();

答案 1 :(得分:3)

根据laravel文档

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

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

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

答案 2 :(得分:0)

试试这个:

$query = DB::statement("INSERT INTO current_survey (`name`, `created_by`, `description`)  SELECT `name`, `created_by`, `description` FROM survey WHERE id=survey_id");

//your inserted id
$last_id = $query->id;