如何获得 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]
);
正如标题所说,
如果我有一个 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]
);