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;
    }
}

 

posted @ 2016-04-07 09:33  传VV说  阅读(539)  评论(0编辑  收藏  举报