В этой короткой статье разберем типичную ситуацию, когда в зависимости от определенных условий в методе beforeAction нужно сделать редирект на другой адрес.
По сути, всё очень просто, но может не до конца очевидно. Суть в том, что метод должен при условии редиректа возвращать true, а не false, как могло бы показаться на первый взгляд.
public function beforeAction($action)
{
if( !\Yii::$app->user->isSessionActive() ) {
$this->redirect(['/session/auth/']);
}
return false;
}
Выше пример реализации с рабочего проекта. Т.е. делаем нужные проверки, затем вызываем метод redirect (причем не ретурним его), после чего возвращаем false.
Метод рабочий на 100%, но если будут вопросы — всегда рад помочь в комментариях. Удачи, коллеги!