다른 컨트롤러를 상속받은 주 컨트롤러가 있습니다. 코드는 다음과 같습니다.인증 후 사용자를 이전 페이지로 리디렉션 (yii2)
public function init()
{
$this->on('beforeAction', function ($event) {
...
if (Yii::$app->getUser()->isGuest) {
$request = Yii::$app->getRequest();
// dont remember login page or ajax-request
if (!($request->getIsAjax() || strpos($request->getUrl(), 'login') !== false)) {
Yii::$app->getUser()->setReturnUrl($request->getUrl());
}
}
}
...
});
}
captcha가있는 페이지를 제외한 모든 페이지에서 완벽하게 작동합니다. captcha가있는 모든 페이지가 다음과 같이 리디렉션됩니다. -/captcha /? v = xxxxxxxxxxxxxx
개체가 Yii :: $ app-> getRequest()로 기록 된 경우 captcha가있는 페이지의 경우 두 번 사용됩니다 . 처음으로 객체가 corect이고, 두 번째로 captcha 객체를 봅니다. yii로 어떻게이 문제를 해결할 수 있습니까? captcha에 대한 요청을 추적하지 못할 가능성이 있습니까?
이public function actions()
{
return [
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
],
];
}
이 컨트롤러는 이런 일이 포함되어 있습니까 :
는
답변을 주셔서 감사합니다 – romany4
나는 그게 정답이라고 생각하지 않습니다. 맞춤 returnUrl은 무엇입니까? 예를 들어 returnUrl에서 controllers \ actions \ behaviors를 제외 시키려면 어떻게해야합니까? $ controller-> goBack()이 나를 다시 돌려 줄 것입니다 ... 그래서 어떤 곳에서 조건을 추가해야합니다 .... – user1954544