如何获得 laravel orm 的最后增量?

How to get last increment in laravel orm?

正如标题所说, 如果我有一个 vendor 模型,如何获得 laravel orm 中的最后一个增量?

我已经找到答案,但无法将其转换为 laravel orm 方式。 任何的想法?
案例 1:

SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE table_name = 'table_name'
AND table_schema = DATABASE( ) ;

案例 2:

SHOW TABLE STATUS LIKE 'table_name'

不清楚您是想在插入后立即检索最后插入的 ID,还是在任何给定时间检索,所以我会回答后者,因为它最不直接。

正如您自己写的那样,最后插入的 id 不与 table 本身一起存储,而是与 table information_schema.tables 一起存储为什么不能使用模型来检索此信息。但是,您可以使用 Laravel 中的 查询生成器 来执行此操作。

$last_insert_id = DB::table('information_schema.tables')
          ->where('table_name', $table_name)
          ->whereRaw('table_schema = DATABASE()')
          ->select('AUTO_INCREMENT')->first();

如果您要获取最后插入的 ID,可以使用 Laravel 的查询生成器 (https://laravel.com/docs/5.3/queries)

的 "insertGetId" 方法

示例:

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