Yii2. Как сделать редирект в beforeAction (redirect in beforeAction)?


В этой короткой статье разберем типичную ситуацию, когда в зависимости от определенных условий в методе beforeAction нужно сделать редирект на другой адрес.

По сути, всё очень просто, но может не до конца очевидно. Суть в том, что метод должен при условии редиректа возвращать true, а не false, как могло бы показаться на первый взгляд.

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

Выше пример реализации с рабочего проекта. Т.е. делаем нужные проверки, затем вызываем метод redirect (причем не ретурним его), после чего возвращаем false.

Метод рабочий на 100%, но если будут вопросы — всегда рад помочь в комментариях. Удачи, коллеги!

, ,

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

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