雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

TP6.0 基础控制器初始化方法中的重定向无效

2024-09-11 17

1. 没有重定向的原因


redirect() 助手函数只能在普通的控制器方法中被 return 才能跳转

通过查看基础控制器, 可发现 initialize() 方法只是在构造方法中被调用, 被没有 return 返回

并且构造方法中的 return 是没有意义的

/** * 构造方法 * @access public * @param  App  $app  应用对象 */public function __construct(App $app){    $this->app     = $app;    $this->request = $this->app->request;    // 控制器初始化    $this->initialize();}

2. 解决方案


在继承的基础控制器中新增自定义重定向方法

/** * 解决基础控制器初始化中无法重定向问题 * * @param ...$args redirect助手函数参数 */public function redirect(...$args){    throw new \think\exception\HttpResponseException(redirect(...$args));}

在继承基础控制器类中重写初始化方法, 在初始化方法中执行重定向

protected function initialize(){    $this->redirect('/addmin/login');}
更新于:8天前
赞一波!

文章评论

全部评论