基于每个车型记录的Yii RBAC

基于每个车型记录的Yii RBAC,yii,rbac,Yii,Rbac,我是Yii新手,不熟悉Yii的RBAC功能。我的问题是,是否可以在每个模型记录的基础上使用RBAC,例如: 表项目用户: | user_id | project_id | role | ================================ | 1 | 1 | admin | --------------------------------- | 1 | 2 | member| 在此场景中,用户1可以编辑项目1,

我是Yii新手,不熟悉Yii的RBAC功能。我的问题是,是否可以在每个模型记录的基础上使用RBAC,例如:

表项目用户:

| user_id | project_id | role  |
================================
|    1    |      1      | admin |   
---------------------------------
|    1    |      2      | member|

在此场景中,用户1可以编辑项目1,但不能编辑项目2。我可以在这里使用Yii的RBAC功能并进行最小配置,还是需要创建自己的过滤代码

我在这里回答了一个类似的问题:

这允许您通过以下几个步骤创建自定义筛选规则:

  • 在filters()覆盖方法中指定“accessControl”标志
  • 在accessRules()方法中,指定对自定义函数的引用以执行访问控制检查
  • 创建访问控制函数以执行检查,并相应地返回true或false,以指定是否允许访问

  • 您可以在链接的问题中看到代码示例。

    您看到了吗?还没有,谢谢您的链接。我会检查它,只是阅读它,但与我想要实现的内容无关。基本上,我希望
    Yii::app()->user->checkAccess
    从模型记录中检查,而不是从
    users
    表中检查。嗨,crafter,我按照链接找到了你的答案,但我认为它不会从用户以外的表中检查。我深入研究了Yii的代码,看起来我需要创建一个新组件来扩展
    CDbAuthManager
    CAuthManager
    ,并分配表名和重写方法。由于验证是在自定义方法中进行的,所以您几乎可以决定从哪个表读取。