2017-02-09 15:15:14 3997次浏览 4条回答 0 悬赏 200 金钱

yii\rbac\DbManager::$itemTable: 该表存放授权条目(译者注:即角色和权限)。默认表名为 "auth_item" 。
yii\rbac\DbManager::$itemChildTable: 该表存放授权条目的层次关系。默认表名为 "auth_item_child"。
yii\rbac\DbManager::$assignmentTable: 该表存放授权条目对用户的指派情况。默认表名为 "auth_assignment"。
yii\rbac\DbManager::$ruleTable: 该表存放规则。默认表名为 "auth_rule"。

就是这四张表,我主要是不知道itemTable和ruleTable里的data是干嘛用,求解释

最佳答案

  • orzorc 发布于 2017-02-15 17:04 举报

    data是你随意的,不需要的时候就让它null就好了。
    就和description字段一样,不要求你一定要有,还是根据你的需求来决定。
    比如说我做RBAC的时候,所有的role在item表里面的data是另一个表里的ID,指向这个role的其他信息。
    所以我会在migration里面加上一个把data从默认的类型修改为int型,并给它加一个外键。

  • 回答于 2017-02-09 15:23 举报

    http://www.yiichina.com/video/29
    看看上面有没有讲解到

  • 回答于 2017-02-10 18:21 举报

    视频上有数据,结合数据看就知道有什么用了。

  • 回答于 2017-02-12 11:11 举报

    参见官方rbac的教程,当我们要检查一个User是否有权修改某篇文章时,如果这个人是admin权限自然就直接可以修改,如果不是,检查其是否为文章作者,就需要附加的rule来实现,data就是要传递给rule的数据,也就是那篇文章的模型对象,在这个对象里包含了作者ID(author_id),对比author_id和当前用户的ID,如果一样就返回true,否则false。可以参看我画的DbManager::checkAccess()的执行图示。

您需要登录后才可以回答。登录 | 立即注册
数字派
总监

数字派 北京

注册时间:2016-04-19
最后登录:2023-03-07
在线时长:52小时34分
  • 粉丝10
  • 金钱1515
  • 威望10
  • 积分2135

热门问题