0
我想在控制器中同時使用beforeAction()
和behaviors()
方法。在Yii2中的控制器中使用beforeAction()和Behavior()方法
如果我在我的代碼中添加beforeAction()
方法而不是behaviors()
方法不起作用。
如果我刪除beforeAction()
方法比behaviors()
方法正在工作。
我不想刪除beforeAction()
,因爲它用於禁用ajax調用的csrf標記。
public function beforeAction($action)
{
if($action->id =='ignore' || $action->id =='accept')
{
$this->enableCsrfValidation = false;
}
return true;
}
而我想用behaviors()
方法進行驗證。
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['create','index','update','change','view','page','active','list'],
'rules' => [
[
'actions' => ['create','index','update','change','view','page','active','list'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action)
{
echo "string";
die;
},
],
],
'denyCallback' => function ($rule, $action) {
return $this->redirect(Yii::$app->request->baseUrl);
}
],
];
}
是否有任何方法可以在同一控制器中使用這兩種方法。