【问题标题】:How to get last increment in laravel orm?如何获得laravel orm中的最后一个增量?
【发布时间】:2017-03-30 09:31:15
【问题描述】:

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

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

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

案例2:

SHOW TABLE STATUS LIKE 'table_name'

【问题讨论】:

  • 你能在下面检查我的答案并接受它,如果它有效吗?谢谢!

标签: php mysql laravel orm increment


【解决方案1】:

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

在您自己编写时,最后插入的 id 不与表本身一起存储,而是与表 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();

【讨论】:

    【解决方案2】:

    如果你想获取最后插入的 ID,你可以使用 Laravel 查询构建器 (https://laravel.com/docs/5.3/queries) 的 "insertGetId" 方法

    例子:

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

    【讨论】:

      猜你喜欢
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 2019-06-09
      • 2010-09-07
      相关资源
      最近更新 更多