当使用内置的 Laravel 7 功能创建用户时,我boot()在我的 User 模型上调用该方法,以便为新用户分配 UUID。我遇到的问题是,由于某种原因,启动方法 get 总共调用了 4 次,导致在 S3 上创建了 4 个不同的目录。
应用程序/用户.php
/**
* Create the user when this class is called
*
* @return void
*/
protected static function boot()
{
// Setup parent
parent::boot();
// Create UUID
$uuid = Str::uuid();
// Create user directory on S3
Storage::disk('s3')->makeDirectory('users/' . $uuid);
// Assign UUID to new user
self::creating(function ($model) use ($uuid) {
$model->id = $uuid;
});
}
这是在创建时向用户添加字段的正确方法吗?我尝试使用该RegisterController.php -> create()方法添加它,但它不会向用户添加任何内容,并导致错误提示 ID 需要默认值。
慕容森