所以我们有一些控制器。例如,它将是AboutController,IndexController,AuthController和ContactController。它们都扩展了具有init()方法的自定义AbstractController:
public function init()
{
if ($this->getUniqueID() != 'auth') {
Yii::$app->getUser()->setReturnUrl(Yii::$app->getRequest()->url);
}
parent::init();
}
此init()将当前url保存为returnUrl。这样做的影响是在用户登录页面后重定向(某种替代的ajax登录)。
你可以避免“AuthController”,但我对另一件事有疑问 - 这是行为。
在ContactController中(与Yii2的基本设置相同),我们有行为'CaptchaAction'。因此,当我们打开/contact/index
时,我们的returnUrl将为/contact/captcha?xxxx
,登录后我们将被重定向到/contact/captcha?xxxx
),这是一个问题。
在此示例中,我使用$this->getUniqueID()
或$this->id
,但是当(关于手动)我尝试使用$this->action
时,它会始终返回null
。
所以,问题是......如何在init()方法中避免某些控制器\动作\行为,或者有人可以建议更好地解决这个问题。
答案 0 :(得分:0)