Laravel任意表预留自定义增量ID - 松风闲云

/ 19 views🌹 / 4💬 / 3🧡

最常见的用户表,如果你偏好一个数字,可以借助“ALTERTABLE users AUTO_INCREMENT= xxx” 来做保留。

实现方案:用模型自带的创建事件监听

//app/Models/User.php

protected static function boot()
    {
        parent::boot();

        // 监听模型创建事件,在写入数据库之后触发
        static::created(
        function ($model) {
            // 保留某些自增ID 999 1111 1234 等,以下数组中的数字需要比要预留的数字减1
            if (in_array($model->id, [998, 1110, 1233])) {
                $autoId = $model->id + 2;
                DB::statement('ALTER TABLE users AUTO_INCREMENT='.$autoId);
                //Log::info('修改了自增ID为'.$autoId);
            }
        }
    );
    }

最后更新于 7月 前 by mouc

  1. 小彦说道:

    这功能实用,可以自动完成,laravel果然是php一哥

  2. 土拨许说道:

    虽然我看不懂,但我觉得很666…

发表评论

您的电子邮箱地址不会被公开。