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 @   79524795  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2023-04-23 php按照首字母排序,PHP获取汉字首字母并分组排序
2021-04-23 layui框架引入TP教程
2021-04-23 经典isset,empty,is_null三个的用法与区别,最详细的讲解
点击右上角即可分享
微信分享提示