У меня есть функция, которая создает новую запись в модели под названием «Включение».Затем я хочу вызвать эту запись через отношение hasOne в пользовательской модели, выполнив auth()->user()->onboarding
, однако это возвращает ноль.Ниже приведен фрагмент моей функции, где это происходит:
public function apiSend(StoreOnboarding $request)
{
//Update the user's Onboarding details on DB
$this->store($request);
//Validate user's onboarding details
$validation = $this->checkValidation(auth()->user()->onboarding);
}
Функция моего магазина:
public function store(StoreOnboarding $request)
{
$onboarding = auth()->user()->onboarding()->updateOrCreate($request->validated());
}
Функция моего магазина работает правильно, и новая запись о подключении добавлена воднако в моей функции apiSend
я получаю сообщение об ошибке:
"Аргумент 1, передаваемый в App \ Http \ Controllers \ OnboardingController :: checkValidation (), должен быть экземпляром App \ Onboarding,пусто дано ".
Ниже приведен фрагмент моей checkValidation
функции:
public function checkValidation(Onboarding $onboarding)
{
$validator = Validator::make($onboarding->toArray(), [
//Validation here
]);
}
А вот мои входящие отношения в пользовательской модели:
public function onboarding()
{
return $this->hasOne(Onboarding::class, 'user_id', 'id');
}
Я не понимаю, почему auth()->user()->onboarding
не возвращает вновь созданную входящую запись и вместо этого возвращает ноль?