CodeIgniter 4 重定向方法失效问题求助
CodeIgniter 4 会话验证重定向失效问题解决
核心问题分析
你的isAuth方法里虽然返回了重定向对象,但调用该方法时没有把这个返回值传递给框架,导致重定向指令没被执行。另外,当前路由未命名,redirect()->route()无法匹配到目标路由。
具体修复步骤
1. 正确返回重定向对象
在控制器调用isAuth时,必须return它的返回值:
// 错误写法:仅调用方法,未返回重定向对象 public function dashboard() { $data = []; $this->isAuth('admin/dashboard', $data); } // 正确写法:返回isAuth的返回值 public function dashboard() { $data = []; return $this->isAuth('admin/dashboard', $data); }
2. 修正重定向路由匹配方式
你当前的路由没有命名,redirect()->route('admin/login')无法识别,二选一即可:
- 方式一:给路由添加名称
修改路由配置:
$routes->get('/admin/login', 'Admin\Admin_Controller::load_login', ['as' => 'admin/login']);
之后redirect()->route('admin/login')就能正常匹配。
- 方式二:直接使用URL路径重定向
修改isAuth里的重定向代码:
return redirect()->to('/admin/login');
3. 额外检查项
- 确认
SES_ADMIN_USER_ID常量已正确定义,无拼写错误; - 检查
Config/App.php中的会话配置(如$sessionDriver),确保会话能正常读写。
内容的提问来源于stack exchange,提问作者Rohan
相关产品推荐
相关产品推荐

