在Yii2.0.6的時候我是在如下文件經過如下方法實現的。php
frontend/modules/user/Module.phpweb
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以後,發現能執行到跳轉,但就是沒法跳轉出去。app
下面是修改後的實現方法,讓他在controller裏面實現邏輯frontend
user module裏面的全部controller所有繼承該controlleryii
<?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; } }