При создании пользователя с использованием встроенной функции Laravel 7 я вызываю метод boot()
в моей модели User, чтобы назначить UUID новому пользователю. Проблема, с которой я сталкиваюсь, заключается в том, что метод загрузки get вызывается в общей сложности 4 раза по какой-то причине, вызывая создание на S3 4 разных каталогов.
App / User. 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()
, но тогда он ничего не добавил бы к пользователю и не привел бы к ошибке, говорящей, что для идентификатора требуется значение по умолчанию.