控制器中使用 behaviors() 在方法執行前 使用指定的驗證器 進行處理數據
public function behaviors() { return [ 'access' => [ 'class' => AccessControl::className(), // 使用核心過濾器Access 對執行動作進行驗證 'only' => ['logout'], // 對logout動作進行驗證 'rules' => [ // 規則 [ 'actions' => ['logout'], 'allow' => true, // 只允許認證用戶進行訪問 'roles' => ['@'], ], ], ], 'verbs' => [ // 設置curd動作 所運行的請求方式 'class' => VerbFilter::className(), 'actions' => [ 'logout' => ['post'], // post 方法 ], ], ]; }
actions的理解
比如在 site/test 的時候,會先在actions方法中找對應請求的 test 方法,如果沒有那么就會在控制器中找actionTest。
還有就是把公共的方法放在actions()中,這樣對應要調用一些公共的靜態頁面的時候就可以不用謝控制器方法了。
public function actions() { return [ 'error' => [ 'class' => 'yii\web\ErrorAction', ], 'captcha' => [ 'class' => 'yii\captcha\CaptchaAction', 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null, ], //返回驗證 'tests'=>[ 'class'=>'backend\models\TestAction', ] ]; }