Yii2 PHP 在 Controller 中使用 beforeAction 执行检查用户

Yii2 PHP Perform checking user with beforeAction in Controller

我知道有一个类似的post,但只是为了确认我的理解。

我刚开始使用 Yii2 PHP。我用过可以登录注册的dektrium/yii2-user。我想做一个 beforeAction() 来检查登录的用户 auth.key 是否存在于数据库中 (XAMPP MYSQL)。下面是我要执行的代码。

//Action direct to json.php.
    public function actionJson()
    {
        return $this->render('json');
    }

如果语句为 true 将定向到页面,否则显示警告错误。

我知道确切的代码是

public function beforeAction($action){}

我感到困惑的是我实际上把 beforeAction() 放在哪里。

BeforeAction()

This method is invoked right before an action is executed.

https://www.yiiframework.com/doc/api/2.0/yii-base-controller#beforeAction()-detail


放在哪里?

您必须将它放在您的登录控制器中 (LoginController.php) class。 请记住在函数内调用父级:

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

    return true; // or false to not run the action
}

然后来自该控制器的所有操作都将使用您自定义的 beforeAction 函数。