我已经设置了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!
1条答案
按热度按时间ubby3x7f1#
我已经想通了(我猜)。在:
有更多的控制器,我已经把
只有在UserController中,这就是为什么它只有在我调用时才能工作:
现在还有DefaultController。当路由中没有定义其他控制器时,就会使用它。我也在DefaultController中放置了权限过滤器,现在它也可以在那里工作了。所以NetBeans显示的Controller路径可能只是一个bug,但我不确定,我不是那么专业的人来决定。