Yii权利不会影响用户,为什么?
我已经设置了基本的骷髅Yii应用程序,有权限和用户扩展。权利工作正常,用户除外。我正在使用NetBeans 8.0.1。Yii权利不会影响用户,为什么?
我已经把这个代码放到SiteController和UserController中作为说明:
public function filters() {
return array(
'rights',
);
}
我注意到一个奇怪的东西。在这里:
class SiteController extends Controller {
我什么时候在用鼠标按住CTRL键字Controller
,在弹出窗口中显示的NetBeans它被指向。它指向应用程序目录中的Controller。这是我的期望,我认为它的工作原理是因为Controller扩展了RController等等。
对于UserController,它不起作用。
class UserController extends Controller {
现在,当我去了这个词,Controller
用鼠标按住Ctrl键,在弹出窗口的NetBeans showes它指向控制器不是在应用程序目录,但该控制器在框架目录。我认为这是它不起作用的原因。但是,由于我点击了它,并跳到这个文件,NetBeans也显示了SiteController的框架控制器,但它仍然有效!所以我现在不知道它是否只是一个NetBeans错误或什么。但是无论如何,我只关心的是权限也适用于UserController。
如何定义我的UserController以指向应用程序中的Controller,而不是框架中的Controller。但也许它指向了正确的位置,这只是NetBeans显示错误的地方。但是,如果不是这个问题,比什么?
UPDATE:
我注意到一件事:某处权利适用于用户,例如当我看到这个在地址栏中输入:
project/user/user/view/id/1
在我看来,因为这将是用户模块,然后用户类,动作等 但是当它不工作,我看到的只是:
project/user
它不使用类用户吗?或者这里发生了什么?什么控制器正在使用?没有?!
非常感谢!
我已经想通了(我猜)。在:
app/modules/user/controllers
有多个控制器,并且我已经把
public function filters() {
return array(
'rights',
);
}
只在UserController的,这就是为什么它的时候我打电话只是工作:
project/user/user/...
现在也有DefaultController。这是在路由中没有定义其他控制器的情况下使用的。我也在DefaultController中放置了权限过滤器,现在它也在那里工作。因此,NetBeans显示为Controller的路径可能只是一个错误,但我不确定,我不是专业人士来决定的。