yii2抛出错误而不是重定向到登录页面

时间:2016-03-24 20:23:03

标签: yii yii2

我不希望猜测网址的人被自动重定向到登录页面。除非重定向,否则我想抛出一个错误,除非你当然登录。这样做的yii2方式是什么?

2 个答案:

答案 0 :(得分:2)

找到解决方案。在behaviours中,您可以添加

[
    'class' => AccessControl::className(),
    ...
    'denyCallback' => function ($rule, $action) {
        throw new \Exception('You are not allowed to access this page');
    }
]

根据http://www.yiiframework.com/doc-2.0/guide-security-authorization.html

答案 1 :(得分:0)

您可以覆盖相关控制器中的beforeAction()方法。

/**
 * @inheritdoc
 */
public function beforeAction($action)
{
    if(Yii::$app->getUser()->isGuest && !in_array($action->id,['allowed', 'actions', 'here']))
        throw new \yii\web\HttpException(403, 'Page could not be found.');

    if (!parent::beforeAction($action)) {
        return false;
    }

    return true;
}

有关该主题的进一步阅读,您可以查看Yii2文档:yii\base\Controller beforeAction() details

相关问题