在我的Laravel应用程序中(我使用的是Laravel 5.1,但这个问题也存在于Laravel 4中),我有一个页面用于"用户设置。"当用户从" undergrad"更新他们的状态时到了毕业生#34;学生并单击"提交",存储此状态的变量在数据库中更改。
我的应用程序然后将用户带到确认页面,说明他们的用户设置已成功更新。
但是,在该页面上,我在视图中有一个条件,它确定了下一个显示的菜单。我为本科生提供了一套菜单,为研究生用户提供了另一套菜单:
@if(Auth::user()->status == 'graduate')
@include('graduate_menus')
@else
@include('undergrad_menus')
@endif
出于某种原因,Auth :: user仍然返回它为" status"存储的先前值。变量。如果我点击"刷新"在页面上,然后Auth :: user返回正确的值。
我通过使用Javascript自动刷新页面一次暂时解决了问题。但是,它是一个丑陋的黑客,我想了解我做错了,Auth :: user没有返回在上一页的POST中更新的值,如果有办法修理它。我想我可能不得不以某种方式刷新Session,但我不知道如何。提前谢谢。
答案 0 :(得分:1)
您可能需要在更改用户对象后手动设置更新的用户,请尝试以下操作:
// Save done, you have $user
// with updated properties, so...
Auth::setUser($user);