方法一:爲了以後做權限控制,增加一個 控制器中間層, 在中間層用 beforeAction 做統一的過濾,
代碼如下
/**
* 在程序執行之前,對訪問的方法進行權限驗證.
* @param \yii\base\Action $action
* @return bool
* @throws ForbiddenHttpException
*/
public function beforeAction($action)
{
//如果未登錄,則直接返回
if(Yii::$app->user->isGuest){
return $this->goHome();
}
//獲取路徑
$path = Yii::$app->request->pathInfo;
//忽略列表
if (in_array($path, $this->ignoreList)) {
return true;
}
if (Yii::$app->user->can($path)) {
return true;
} else {
throw new ForbiddenHttpException(Yii::t('app', 'message 401'));
}
}
方法二:寫一個控制器基類,然後繼承其init方法,然後做判斷
方法三:在Module類裏進行判斷處理。