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);
});
}