本文实例讲述了yii2 RBAC使用DbManager实现后台权限判断的方法。分享给大家供大家参考,具体如下:
首先根据文档生成yii2 框架中的表
yii migrate --migrationPath=@yii/rbac/migrations/
生成如下4表:
auth_assignment
auth_item_child
auth_item
auth_rule
使用yii的gii快速生成对应的model,但是由于auth_item表同时存储角色跟权限,由于后面我们要分角色跟权限来做curd操作,所以我这里新建了一个RoleForm和PermissionForm两个model来区分开角色与权限。由于角色跟权限紧紧相连,又在auth_item生成的model中多加一个属性$child,后面会用到现在先不管。
下面是角色model的相关代码
namespace appmodels;
use Yii;
use appmodelsAuthItem;
use yiibacItem;
/*
* 角色model
* 指尖上的艺术家
*/
class RoleForm extends AuthItem
{
public function init() {
parent::init();
$this->type = Item::TYPE_ROLE;//yii-rbac-Role隐藏继承常量这里的值是1
}
}
下面是权限model的相关代码
namespace appmodels;
use Yii;
use appmodelsAuthItem;
use yiibacItem;
/*
* 权限model
* 指尖上的艺术家
*/
class PermissionForm extends AuthItem
{
public function init() {
parent::init();
$this->type = Item::TYPE_PERMISSION;//常量值 2
}
}
另外在AuthItem模型中增加一个属性
class A