Tp6登录 Base控制器initialize初始化 redirect无法跳转

Tp6.0 慕课Singwa 第6章9分钟

<?php
namespace app\admin\controller;


use app\BaseController;

class AdminBase extends BaseController
{
    public $adminUser = null;

    public function initialize()
    {
        parent::initialize();

        //判断是否登录
        if (empty($this->isLogin())){  //没登录
            return redirect(url('login/index'));
        }
        else{
            return redirect(url('index/index'));
        }
    }


    public function isLogin()
    {
        $this->adminUser = session(config('admin.session_admin'));
        if (empty($this->adminUser)){
            return false; //没登录
        }else{
            return true;  //登录了
        }
    }
}

在下面加个方法

use think\exception\HttpResponseException;


public function redirect(...$args)
    {
        throw new HttpResponseException(redirect(...$args));
    }

在initialize中直接调用redirect方法

 public function initialize()
    {
        parent::initialize();

        //判断是否登录
        if (empty($this->isLogin())){  //没登录
            return $this->redirect(url('login/index'),303);
        }
        else{
            return $this->redirect(url('index/index'),302);
        }
    }

但由于这是一个死循环,所以要把继承Base的登录页面的initialize重写为空

public function initialize(){

}

版权声明:本文为s1095622320原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。