问题:
- namespace app\admin\controller;
- class Index {
- //构造方法判断是否登录,为登录则跳进登录界面
- public function __construct(){
- if(empty(session('user_id'))){
- return redirect(url('index/login'));
- }
- }
- public function index(){
- echo 123456;
- }
- }
user_id不存在时,输出的是:123456,然后发现问题是redirect跳转无效
那么可以通过继承Controller,使用_initialize()方法判断登录并进行跳转,也可以使用行为,设置module_init来判断admin模块是否登录,或者action_begin标签位,把登录的控制器过滤掉。也可以定义一个公共的 base基类,在base基类里面去判断是否有登录过,或者放其他判断的方法,之后的控制器继承base基类就行了,无需在继承Controller。