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

时间:2019-07-15 10:16:27

标签: php yii yii2 yii2-user

我知道也有类似的帖子,只是为了确认我的理解。

我刚刚开始使用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()放在哪里。

1 个答案:

答案 0 :(得分:0)

  

BeforeAction()

     

此方法在执行操作之前被调用。

     

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


放在哪里?

您必须将其放置在登录控制器(LoginController.php)类中。 记住在函数内部调用父对象:

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

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

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