数据库变量未立即更新

时间:2015-09-04 00:57:26

标签: php laravel laravel-4 laravel-5 laravel-5.1

在我的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,但我不知道如何。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可能需要在更改用户对象后手动设置更新的用户,请尝试以下操作:

// Save done, you have $user
// with updated properties, so...

Auth::setUser($user);