Макет app.blade.php не отображает обновленную информацию о пользователе

Я создаю сайт, используя Laravel 5.2. У меня есть функция, которая просто меняет один атрибут пользователя. Он меняет атрибут «тип» с «частное лицо» на «бизнес». Функция проста и изменяет базу данных. Это выглядит так:

public function addBusiness() {
    $user = Auth::user()->update([
        'type' => 'business'
    ]);

    Session::flash('msg_title', 'Awesome!');
    Session::flash('message', 'You\'ve added a business to your account');
    return redirect()->back(); 

}

Если я показываю атрибут в теле, он отображает бизнес так, как должен.

Однако в заголовке (находится в файле макета app.blade.php) по-прежнему отображается «индивидуально». Я провел тест, в котором у меня было {{Auth::user()->type}} как в app.blade.php, так и в файле блейда моего тела, он отображал «индивидуальный» в app.blade.php и «бизнес» в теле на одном экране.

Он сохраняется даже после Session::flush(); после выхода/входа в систему или даже входа из другого браузера.


person Dustin Maxey    schedule 23.01.2016    source источник


Ответы (1)


попробуйте \Auth::setUser($user) после обновления пользователя

проверьте определение в laravel/framework/src/Illuminate/Auth/Guard::setUser

person Community    schedule 23.01.2016
comment
Это не сработало. Функция фактически обновляет правильного пользователя. При проверке базы данных значение обновляется. Приложение просто как-то запоминает старое значение, но только заголовок (app.blade.php), а не файл. очень странно. - person Dustin Maxey; 23.01.2016
comment
... вздох... было @if(Auth::user()='individual') над этим = вместо == исправлено. Спасибо за вашу помощь. - person Dustin Maxey; 23.01.2016