Yii2.0.7 限制user module登录遇到的问题

时间:2023-03-08 21:22:00
Yii2.0.7 限制user module登录遇到的问题

在Yii2.0.6的时候我是在以下文件通过以下方法实现的。

frontend/modules/user/Module.php

namespace frontend\modules\user;

class Module extends \yii\base\Module
{
public $controllerNamespace = 'frontend\modules\user\controllers'; public function init()
{
parent::init(); //该模块必须登陆用户访问
if (Yii::$app->user->isGuest){
return Yii::$app->response->redirect(Yii::$app->homeUrl);
} return true;
}
}

后来更新到Yii2.0.7之后,发现能执行到跳转,但就是无法跳转出去。

下面是修改后的实现方法,让他在controller里面实现逻辑

user module里面的所有controller全部继承该controller

<?php
namespace frontend\modules\user\controllers; use Yii;
use yii\web\Controller; class ApplicationController extends Controller
{
public function beforeAction($action)
{
if (!parent::beforeAction($action)) {
return false;
} if (Yii::$app->user->isGuest){
return $this->goHome()->send();//这边需要加send(),不然无法跳转,Yii 2.0.7
} return true;
}
}