Yii2. Как сделать редирект в контроллере в beforeAction?


Ситуация, когда надо перед действием проверить какую-то логику и при необходимости сделать редирект достаточно частая. Но решение здесь не очень очевидное — поэтому приведу пример.

Ниже пример редиректа в методе beforeAction:

    public function beforeAction($action)
    {
        if( !parent::beforeAction($action) ){
            return false;
        }
        if( !\Yii::$app->user->isPrivateSessionActive() ) {
            $this->redirect(['/auth']);
        }
        return true;
    }

Нас интересует второе условие. Особенность в том, что, в отличие от обычного контроллера, в beforeAction нужно не делать return $this->redirect(), а просто вызвать redirect(), при этом вернуть true.

Если Вам интересно пояснение первого условия в методе — Вы можете почитать его здесь.

На этом всё — всем добра. Удачи!

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *