首先新建一个 Behavior
在所在应用中 components(如果没有就新建一个文件件),然后在里面新增一个行为,暂叫做 nocsrf.
<?php namespace mobile\components; use Yii; use yii\base\ActionEvent; use yii\base\Behavior; use yii\web\Controller; class NoCsrf extends Behavior { public $actions = []; public $controller; public function events() { return [Controller::EVENT_BEFORE_ACTION => 'beforeAction']; } public function beforeAction($event) { $action = $event->action->id; if(in_array($action, $this->actions)){ $this->controller->enableCsrfValidation = false; } } }然后,在控制器中use
use mobile\components\NoCsrf;
public function behaviors() { return [ 'csrf' => [ 'class' => NoCsrf::className(), 'controller' => $this, 'actions' => [ 'notify', ] ] ]; }注意actions是指的具体的方法,比如 actionNotify ,你就协商notify 。就行了
完毕