Controller.php中有一个beforeAction()
public function beforeAction($action)
{
if (parent::beforeAction($action)) {
if ($this->enableCsrfValidation && Yii::$app->getErrorHandler()->exception === null && !Yii::$app->getRequest()->validateCsrfToken()) {
throw new BadRequestHttpException(Yii::t('yii', 'Unable to verify your data submission.'));
}
return true;
}
return false;
}
它抛出一个异常,但我想在我自己的控制器中更改它,扩展了controller.php。我尝试类似的东西
public function beforeAction($action) {
if ($this->enableCsrfValidation && Yii::$app->getErrorHandler()->exception === null && !Yii::$app->getRequest()->validateCsrfToken()) {
Yii::$app->session->setFlash('info', 'Error');
$this->goBack();
}
return parent::beforeAction($action);
}
但它仍然显示异常。
答案 0 :(得分:0)
不确定,但只更改此行可能会有效......
$this->goBack();
...成
return $this->goBack();
另一种方法是从父级捕获异常。稍后可能会有由beforeAction触发的其他事件,如果没有调用parent :: beforeAction,则这些事件可能无法按预期运行。