Yii Rights不会影响用户,为什么?

时间:2014-10-01 15:46:10

标签: php netbeans yii rights

我已经设置了基本的骨架Yii应用程序,具有权限和用户扩展名。除用户外,权利工作正常。我使用的是NetBeans 8.0.1。

我已将此代码放入SiteController和UserController,如说明所示:

public function filters() {
    return array(
        'rights',
    );
}

我注意到一件奇怪的事。这里:

class SiteController extends Controller {

当我用鼠标光标按住CTRL查看单词Controller时,在弹出窗口中,NetBeans显示了它指向的位置。它指向应用程序目录中的Controller。这是我的预期,我认为它有效,因为Controller扩展了RController等等。

对于UserController,它无法正常工作。

class UserController extends Controller {

现在,当我用鼠标光标按住CTRL查看单词Controller时,在弹出窗口中,NetBeans显示它指向的Controller不在应用程序目录中,而是指向Controller中的 framework 目录。我认为这就是它无法正常工作的原因。但是,自从我点击它并跳转到此文件后,NetBeans也显示了与SiteController相同的框架Controller,但它仍然有效!所以我现在不知道它是否只是一个NetBeans错误或者是什么。但无论如何,我唯一关心的是权利也适用于UserController。

如何定义我的UserController以指向应用程序中的Controller,而不是框架中的Controller。但也许它指向了正确的位置,它只是NetBeans的错误显示。但如果不是这就是问题,而不是什么?

更新:

我注意到了一件事:某个地方的权利适用于用户,例如:当我在地址栏中看到这个时:

project/user/user/view/id/1

在我看来,因为它将是用户模块,然后是用户类,操作等。 但是当它不起作用时,我只看到:

project/user

是不是使用了类用户?或者这里发生了什么?正在使用什么控制器?无?!

非常感谢!

1 个答案:

答案 0 :(得分:0)

我已经明白了(我猜)。在:

app/modules/user/controllers

有更多的控制器,我已经把

public function filters() {
    return array(
        'rights',
    );
}

仅在UserController中,这就是为什么它只在我调用时才起作用:

project/user/user/...

现在还有DefaultController。当路线中没有定义其他控制器时使用。我也在DefaultController中放置了权限过滤器,现在它也在那里工作。所以NetBeans显示为Controller的路径可能只是一个错误,但我不确定,我不是那么专业的决定。