我可以在authManager(在配置中的defaultRoles
数组中)中静态定义角色并将其分配给用户,以便行为规则定义对操作的访问权限吗
由于我有某些角色,我不想使用auth_assignment
和auth_item
假设我在用户表中为角色创建列,并且每个用户都有一个角色,并且角色在配置文件中定义
事实上,我想为管理员用户建立类似"admin"的访问规则(其中yii表示"@"表示已验证用户,表示"?"表示访客)
首先在params之类的地方创建您的角色,然后行为功能可以轻松管理身份验证
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'except' => [''],//or only
'rules' => [
[
'allow' => true,
'actions' => ['deletepic', 'regenerate'],
'matchCallback' => function ($rule, $action) {
return (myAuth(['root','admin']));
}
],
],
],
];
}
myAuth()将检查当前用户角色,如果他们的角色与请求的操作匹配,则返回true。