2017-09-12 3 views
0

Controller.phpbeforeActionの動作を変更するにはどうすればよいですか?

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; 
    } 

でbeforeAction()がありますこれは、例外がスローされますが、私は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); 
} 

しかし、それでも例外が表示されます。

return $this->goBack(); 

...に

答えて

0

わからないが、それはちょうどこの行を変更するとうまくいくかもしれない...

$this->goBack(); 

別のアプローチではなく、親からの例外をキャッチすることです。後でbeforeActionによってトリガされる他のイベントがあり、parent :: beforeActionを呼び出さない場合は、意図したとおりに実行されない可能性があります。

関連する問題