Странная проблема здесь, у меня есть вид content.home
который опирается на аутентифицированного пользователя User
модель для разрешения и передачи ей.
Прежде чем модель User будет готова, у меня есть простая функция, в которой я передаю имя аутентифицированному пользователю. User
модель.
Этот код ниже, включая возвращаемое представление:
public function name()
{
$input = Input::all();
$name = $input['name'];
if(strlen($name)>2) //some validation
{
$user = User::where('id',Auth::id())->first();
$user->name = $name;
$user->save();
return view('content.home')->with('user', Auth::user());
}
}
Моя проблема в том, что когда я возвращаю представление, у меня нет пользователя name
, Как только я обновляю страницу, она появляется. Другие пользовательские данные, предоставленные Auth::user()
есть, но не имя. Как это может быть, когда я только что сохранил это? Это не NULL
опять же, если я обновлю страницу сразу, она появится.
Я получаю name
в виде клинка вот так:
{{$user->name}}
Является save()
асинхронный? Я так не думаю. Есть ли задержка?
Как я могу убедиться, что передаваемая модель правильно разрешена?
Спасибо!
Ответ на этот вопрос, если у кого-то есть похожая проблема:
Причина, по которой это не удалось выполнить без обновления, заключается в том, что на Auth::user()
,
Когда я прохожу $user
Я сохранил, а не Auth::user()
, хотя это один и тот же пользователь, он работает.
Так что меняй return view('content.home')->with('user', Auth::user());
в
return view('content.home')->with('user', $user);
Других решений пока нет …