2015-04-03 10:00:50 5780次浏览 3条回答 0 悬赏 0 金钱

安好了,不会用。比如那个添加rule的时候那个类名填啥我都不知道。试了很多都不行。。。

最佳答案

  • wwwyii 发布于 2016-01-06 10:48 举报

    示例说明:
    新建common\rbac\AuthorRule(此类extend yii\rbac\Rule), 然后新建rule的时候,输入
    rulename:AuthorRule
    classname:\common\rbac\AuthorRule
    提交即可成功

  • 回答于 2015-04-03 11:12 举报

    这个建议你还是先去看看视频,看看别人的代码,再来研究。

    1 条回复
    回复于 2016-06-10 09:39 回复

    哪里有RBAC视频

  • 回答于 2016-01-06 09:38 举报

    也是搞不太清要怎么填写,后来看了一下源码,应该是要输入:
    1、rule name:随意取的名字
    2、class name:是一个类名,继承自yii\rbac\Rule的子类,其实就是自己写的rule实现
    看一下保存rule的实现:

     /**
         * Save model to authManager
         * @return boolean
         */
        public function save()
        {
            if ($this->validate()) {
                $manager = Yii::$app->authManager;
                $class = $this->className;----新建rule时写入的类名
                if ($this->_item === null) {
                    $this->_item = new $class();-----创建该类的实例
                    $isNew = true;
                } else {
                    $isNew = false;
                    $oldName = $this->_item->name;
                }
                $this->_item->name = $this->name;-----将rule name复制给Rule
    
                if ($isNew) {
                    $manager->add($this->_item);----添加到authmanager,即保存到数据库的auth_rule表中
                } else {
                    $manager->update($oldName, $this->_item);
                }
    
                return true;
            } else {
                return false;
            }
        }
    
您需要登录后才可以回答。登录 | 立即注册
Ricky_nie
副董事长

Ricky_nie

注册时间:2014-08-21
最后登录:2018-07-15
在线时长:135小时52分
  • 粉丝42
  • 金钱24358
  • 威望60
  • 积分26308

热门问题