有什么方法可以在创建时添加自定义格式的ID?
例如,有一个表“ Customers”,该表中有一个主键-“ ID(自动递增)”和一个唯一键“ customer_id”
现在,当我创建一个新客户时,“ ID”是自动递增的,因此它将自动在数据库中设置。
我想在创建时将“ customer_id”设置为“ 2018-0001”。 CurrentYear-000 INSERTED_ID
答案 0 :(得分:0)
您可以为此使用created
模型事件。 docs
雄辩的模型会触发多个事件,使您可以进入 模型生命周期中的以下几点:
retrieved
,creating
,created
,updating
,updated
,saving
,saved
,deleting
,deleted
,restoring
,restored
。通过事件,您可以在每次特定时间轻松地执行代码 模型类已保存或更新到数据库中。每个事件收到 通过其构造函数创建的模型实例。
创建customer
后,您可以生成customer_id
并将其保存:
Customer.php
use Carbon\Carbon;
class Customer extends Model
{
protected static function boot()
{
parent::boot();
static::created(function ($obj) {
$obj->customer_id = Carbon::now()->year.'-000'.$obj->id;
$obj->save();
});
}
}