在Yii中设置访问规则以获取来自不同控制器的相同名称的操作?

时间:2015-05-08 13:48:58

标签: php yii

我在互联网上搜索过,但我一无所获。我从组件的主要 Controller.php 中集中了所有控制器的所有访问规则。 这是我的代码:

public function accessRules() {

        $controllers = array(' '); $actions = array('index');
        if (Yii::app()->user->getState("isAdmin") == true){ 
            array_push($controllers, 'controllerName','ModuleName/ControllerName');
            array_push($actions, 'create');
        }
        if (Yii::app()->user->getState('isNormalUser') == true){
            array_push($controllers, 'controllerName2');
        }
        if (Yii::app()->user->getState("isAdmin") == false && Yii::app()->user->getState("isNormalUser") == false){
            return array(
                array('deny', // deny all users
                    'users' => array('*'),
                ),
            );
        }else{ 
            $controllers = array_unique($controllers); //remove duplicates
            $actions = array_unique($actions);//remove duplicates
            return array(
                array('allow',
                    'controllers'=> $controllers,
                    'actions'    => $actions,
                ),
                array('deny', // deny all users
                    'users' => array('*'),
                ),
            );
        }
    }

我的问题是: 在我的模块中,如果我有一个带有一个名为f1的函数的控制器(C1)和一个具有相同函数名f1的另一个控制器(C2),我想只允许访问带有f1的C1?我怎样才能做到这一点?我观察到我可以区分具有相同控制器名称的模块,并给出格式

  

模块名/ ModuleController   它与行动类似吗? THX

0 个答案:

没有答案