Yii :: $ app-> user-> can('do_all')在我的用户输入时返回null(在db只有1个用户中)。 我做错了什么。
1) - 我创建了4个表。
auth_asignment: item_name => do_all, user_id => 1
auth_item: name => do_all, type => 1
auth_item_child: empty
auth_rule: empty
2) - 我在config / web.php中添加了
'components' => [
'authManager' => [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['guest'],
]
]
3) - 在控制器中我添加了
public function actionIndex()
{
if(Yii::$app->user->can('do_all')){
return $this->render('index');
}
else{
throw new ForbiddenHttpException('The requested page is not exist.');
}
}
答案 0 :(得分:1)
我认为你在auth_item_child中添加值并以这种方式组织值
尝试以这种方式添加角色
void Application_BeginRequest(object sender, EventArgs e)
{
if() //check your condition
HttpContext.Current.RewritePath("your html file");
}
并使用(注意类名称通常User类名称以大写字符开头)
auth_item: name => do_all_role, type => 1
auth_item_child parent: do_all_role, child : do_all
auth_asignment: item_name => do_all_role, user_id => 1