У меня есть следующий Обозреватель моделей:
class UserObserver {
/**
* @var \Illuminate\Http\Request
*/
protected $request;
/**
* UserObserver constructor.
*
* @param \Illuminate\Http\Request $request
*/
public function __construct(Request $request)
{
$this->request = $request;
}
/**
* User created
*
* @param User $user
* @throws \Exception
*/
public function created(User $user)
{
try {
// Create the user's first profile for them.
$profile = $user->profiles()->create([ 'name' => $this->request->get('username'), 'description' => null ]);
// Set the users active profile to the one just created.
$user->active_profile = $profile->id;
$user->save();
} catch(\Exception $e) {
throw new \Exception($e->getMessage());
}
}
}
У меня также есть сеялка таблицы пользователей, которая задает новый запрос:
$request = new \Illuminate\Http\Request();
$request->replace(['username' => $user['username']]);
В тот момент, когда сеялка работаетвыполнить запрос устанавливается, и это было проверено как работающее внутри класса seeder, однако, как только он попадает в Model Observer, запрос становится пустым (null).
Я пытаюсь добиться того, чтобы при создании нового пользователя создавался новый профиль для пользователя, и я хотел бы, чтобы в этом профиле было имя, введенное пользователем в форму, но такжеработать, когда сеялка работает.
Надеюсь, это имеет смысл?