Есть главный контроллер, от которого унаследуются все остальные. В коде контроллера есть следующее:
public function init()
{
$this->on('beforeAction', function ($event) {
...
// запоминаем страницу неавторизованного пользователя, чтобы потом отредиректить его обратно с помощью goBack()
if (Yii::$app->getUser()->isGuest) {
$request = Yii::$app->getRequest();
// исключаем страницу авторизации или ajax-запросы
if (!($request->getIsAjax() || strpos($request->getUrl(), 'login') !== false)) {
Yii::$app->getUser()->setReturnUrl($request->getUrl());
}
}
}
...
});
}
Для всех страниц это работает корректно, но кроме страниц с captcha. Для страниц captcha редирект идет на нечто подобное /captcha/?v=xxxxxxxxxxxxxx
Если залогировать объект Yii::$app->getRequest(), то получается, что для страниц с captcha он вызывается дважды. В первый раз как раз таки нужный мне объект, во второй раз - объект с captcha.
С помощью средств yii2 возможно решить этот вопрос, а именно получать нужный мне request? (возможно как-то убрать request для captcha?)