behavior()方法
behaviors()是創(chuàng)建權(quán)限驗證必不可少的方法,相當于一個攔截器椎侠。把那些沒有該權(quán)限的人應用相關(guān)的方法里;
public function behaviors()
{
return [
'bootstrap' => [//啟動引導的相應格式
[
'class' => 'yii\filters\ContentNegotiator',
'formats' => [
'application/json' => Response::FORMAT_JSON,
'application/xml' => Response::FORMAT_XML,
],
'languages' => [
'en',
'de',
],
],
],
],
[
'class' => 'yii\filters\AjaxFilter',//驗證允許ajax執(zhí)行的動作
'only' => ['index'],
'errorMessage'=>'Request must be XMLHttpRequest.'//當請求不是ajax請求是輸出錯誤信息
],
'access' => [ //behavior中的驗證是否允許訪問的認證類
'except'=>['login'],//login不進行訪問驗證
'only' => ['*'],//設置驗證的動作方法‘*’,代表全部驗證萧福。
#'only'=>['index','check','Add','confirm','del']//也可以寫成這樣
'rules' => [//我們的驗證規(guī)則,以數(shù)組形式涨薪,每一個數(shù)組代表一個驗證規(guī)則
[
'allow' => false,//不允許
'roles' => ['?'],//?代表游客, @代表登錄用戶 如果為空,代表普遍適用袋哼。
'actions' => ['index']//設置驗證的方法冀墨,因為這里的allow為false所以actions的方法都不能被游客訪問。
'denyCallback'=>function($rule,$action)
{
return $this->redirect(['product/index']);
},//如果被拒絕訪問先嬉,則會執(zhí)行該匿名方法轧苫,該匿名方法可以獲取兩個值,$rule.$action
'ips'=>'192.168.*'//表示該規(guī)則適用于192.168這個ip段疫蔓,如為空則表示全部都適用
],
[
'allow' => true,
'actions' => ['index', 'check', 'Add', 'Confirm'],
'roles' => ['@']
]
]
]
];
}