Попытка добавить информацию в пустой profile и перенаправить обратно.
$user = User::whereUsername($username)->firstOrFail(); // Selects correct user $input = Input::all(); // a dd($input) at this point confirms input present $this->profileForm->validate($input); // Passes $user->profile->fill($input)->save(); return Redirect::route('profile.edit', $user->username);
Если $user->profile имеет значение null это дает ошибку: Call to a member function fill() on a non-object . Я попытался исправить это с помощью:
$user = User::whereUsername($username)->firstOrFail(); // Selects correct user $input = Input::all(); // a dd($input) at this point confirms input present $this->profileForm->validate($input); // Passes if ($user->profile == null) { $user->profile = new Profile; } $user->profile->fill($input)->save(); return Redirect::route('profile.edit', $user->username);
Но в этом случае он перенаправляется без добавления сведений о профиле ( $user->profile до сих пор остается null ).
Если в $ user-> profile уже есть информация, эта проблема не возникает, и код работает нормально.
Вы можете сделать это следующим образом:
if (count($user->profile)) { $user->profile->fill($input)->save(); } else { $profile = Profile::create($input); $user->profile()->save($profile); }