Yii权限不影响用户,为什么?

nfzehxib  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(126)

我已经设置了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,而是framework目录中的Controller。我以为这就是它不工作的原因。但由于我单击了它,并跳转到了该文件,NetBeans还显示了SiteController的相同框架Controller。但它仍然工作!所以我现在不知道这是否只是NetBeans的bug或什么。但无论如何,我唯一关心的是,权限也适用于UserController。
如何定义UserController使其指向应用程序中的Controller,而不是框架中的Controller。但也许它指向了正确的位置,只是NetBeans显示错误。但如果不是这个问题,那是什么呢?
最新消息:
我注意到一件事:在某处权限对用户有效,例如,当我在地址栏中看到以下内容时:

project/user/user/view/id/1

在我看来,它应该是用户模块,然后是用户类,操作等。但当它不工作时,我只看到:

project/user

是不是没有使用类用户?2或者这里发生了什么?3使用的是什么控制器?4没有?5!

ubby3x7f

ubby3x7f1#

我已经想通了(我猜)。在:

app/modules/user/controllers

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

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

只有在UserController中,这就是为什么它只有在我调用时才能工作:

project/user/user/...

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

相关问题