initialize方法重定向无限循环问题解决方案

由于在 initialize 方法中进行重定向而造成的重定向循环。当 session('?user_id') 检查失败时,你的代码会尝试重定向到登录页面。如果登录页面或者处理登录的控制器也继承自同一个基类(或者有类似的 initialize 检查),这将导致每次尝试访问登录页面时都会再次执行重定向,从而陷入无限循环。

解决方案

当运行user/login时候不会运行initialize方法的判断session部分,直接返回了


protected function initialize()
{
    parent::initialize();
    // 获取当前控制器和方法名
    $controller = request()->controller();
    $action = request()->action();

    // 排除登录页面的会话检查
    if ($controller == 'User' && $action == 'login') {
        return;
    }

    if (!session('?user_id')) {
        redirect('user/login')->send();
        exit;
    }
}



posted @ 2024-04-23 16:38  79524795  阅读(5)  评论(0编辑  收藏  举报