我正在尝试为表posts
设置自定义ID。我找到了haruncpi laravel id生成器,并用composer require haruncpi/laravel-id-generator
安装了它。之后,将use Haruncpi\LaravelIdGenerator\IdGenerator;
添加到PostsController
。现在我需要添加此$id = IdGenerator::generate(['table' => 'posts', 'length' => 10, 'prefix' =>'INV-']);
,但我不知道在哪里以及如何...可能在public function store()
或其他位置?请帮忙!我只希望我的身份证像:INV-000001INV-000002...
Laravel模型具有boot()
方法,您可以在其中注册与模型相关的调用。因此,您可以订阅创建事件,该事件将在保存模型之前触发,您可以在此过程中更改模型。
因此,在您的Post.php模型中,添加以下内容。
public static function boot()
{
parent::boot();
self::creating(function ($model) {
$model->id= IdGenerator::generate(['table' => 'posts', 'length' => 10, 'prefix' =>'INV-']);
});
}
并且只要您利用基本的Laravel
功能,它将ID添加到模型中。