当访问控制过滤(ACF)进行授权检查时,它会从上到下地一个接着一个地测试那些规则直至找到一个相符的。 相符的允许值将立即用于判断用户是否被授权。如果没有一个规则符合, 这就意味着这个用户“没有”被授权,访问控制过滤(ACF)将阻止它进一步的动作请求。
public function behaviors() {
return [
‘access‘ => [
‘class‘ => AccessControl::className(),
‘except‘ => [‘index‘], //不做验证的action
‘rules‘ => [ //具体规则
[
//action为空,则适用与所有action(except中的除外)
‘allow‘ => true,
‘roles‘ => [‘@‘],
],
],
],
];
}
public function behaviors() {
return [
‘access‘ => [
‘class‘ => AccessControl::className(),
‘only‘ => [‘login‘,‘logout‘], //需验证的action
‘rules‘ => [ //具体规则
[ // login,signup游客状态可访问
‘actions‘ => [‘login‘,‘signup‘],
‘allow‘ => true,
‘roles‘ => [‘?‘],
],
[ //update,delete登录状态可访问
‘actions‘ => [‘update‘,‘delete‘],
‘allow‘ => true,
‘roles‘ => [‘@‘],
],
],
],
];
}
原文:http://breezelife.blog.51cto.com/2477790/1690136