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; } }
男儿走四方,何处不为家
死在哪里,葬在哪里,天下青山一样