关于ci4 redirect的问题
我知道4.0的文档有说明,return redirect()->to($url);这样使用的。但为什么一定要在控制器里面的方法调用才行呢?每个方法都必须重复调用才行?例如:
<?php
namespace App\Controllers\Test;
use App\Controllers\BaseController;
class Test extends BaseController {
public function initController(\CodeIgniter\HTTP\RequestInterface $request, \
CodeIgniter\HTTP\ResponseInterface $response, \Psr\Log\LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
//这里使用redirect无效
if(!$this->session->get('user_id')){
return redirect()->to('login/index');
}
}
public function t1(){
//必须在这里调用
if(!$this->session->get('user_id')){
return redirect()->to('login/index');
}
}
public function t2(){
//必须在这里调用
if(!$this->session->get('user_id')){
return redirect()->to('login/index');
}
}
}
把initController中的跳转改成
redirect()->to('login/index')->send();
exit(EXIT_SUCCESS);
如果只是判定是否登录,可用新建一个 登录后才能的用的基类;
比如 默认的是 BaseController, 那我可以再创建一个 UserCtro 继承 BaseController,在UserCtro 里的初始方法里判断是否登录
这样 ,需要登录才能操作的控制就 再继承 UserCtro, 其它的控制器可以 继续 继承BaseController
页:
[1]