Php 会话过期后Laravel重定向不工作
当前,如果我在我的webapp中空闲足够长的时间,我的会话将过期。再次交互时,我会收到一个错误屏幕,通知我会话超时,而不是将我重定向到主页 在我的routes.php文件中,我使用以下内容:Php 会话过期后Laravel重定向不工作,php,session,redirect,laravel,login,Php,Session,Redirect,Laravel,Login,当前,如果我在我的webapp中空闲足够长的时间,我的会话将过期。再次交互时,我会收到一个错误屏幕,通知我会话超时,而不是将我重定向到主页 在我的routes.php文件中,我使用以下内容: Route::filter('authenticate', function() { if ( !Session::has('user') && Session::get('user')->id ) { // return true if user not logged
Route::filter('authenticate', function() {
if ( !Session::has('user') && Session::get('user')->id ) { // return true if user not logged
return Redirect::to('/');
}
});
我的逻辑错了吗?你的表达式永远不会为真。你基本上是用英语说的: 如果密钥为“User”的会话中没有值,并且密钥为“User”的会话值具有id,则执行 有一个会话值的键是否为
'User'
,但不能同时拥有它。我想你应该这样说:
if ( !Session::has('user') || !Session::get('user')->id )
这将在两种情况下执行重定向:
出于某种原因,您的解决方案在登录时一直在重定向,但它只适用于(!Session::has('user')),如果用户键中的条目在
id
属性中没有计算为true的值,则该选项是有意义的