Laravel ID生成器包奇怪的问题



Laravel ID生成器出现奇怪问题。我想在我的订单表中添加一个自定义ID字段,我在模型中有这个引导方法:

public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->order_number = IdGenerator::generate(['table' => 'orders', 'length' => 6, 'prefix' => date('y')]);
});
}

这样可以创建如下的id:

210001, 210002, ... ,210010

问题是,一旦ID达到210010,它就会从210001重新启动。我在项目GIThub页面上打开了一个问题,但我想知道是否有解决这个问题的方法。

默认情况下,包在表的ID字段上工作,但是您使用的是自定义字段order_number,并且没有将它传递给生成函数。看一下示例4中的Laravel ID生成器doc

试试这个代码

public static function boot()
{
parent::boot();
self::creating(function ($model) {
$args = ['table' => 'orders', 'field' => 'order_number', 'length' => 6, 'prefix' => date('y')];
$model->order_number = IdGenerator::generate($args);
});
}

最新更新