【问题标题】:Yii Rights doesn't affect User, why?Yii 权限不影响用户,为什么?
【发布时间】:2014-11-26 12:33:39
【问题描述】:

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

我已按照说明将此代码放入 SiteController 和 UserController 中:

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

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

class SiteController extends Controller {

当我在鼠标光标按住 CTRL 的情况下浏览单词 Controller 时,NetBeans 在弹出窗口中显示了它指向的位置。它指向应用程序目录中的控制器。这是我所期望的,我认为它可以工作,因为 Controller 扩展了 RController 等等。

对于 UserController,它不起作用。

class UserController extends Controller {

现在,当我在鼠标光标按住 CTRL 的情况下浏览单词 Controller 时,在弹出窗口中 NetBeans 显示它指向的不是应用程序目录中的控制器,而是 框架中的控制器 目录。我认为这就是它不起作用的原因。但是由于我单击它并跳转到该文件,NetBeans 也为 SiteController 显示了相同的框架控制器,但它仍然有效!所以我现在不知道这是否只是一个 NetBeans 错误或什么。但无论如何,我只关心 Rights 也适用于 UserController。

如何将我的 UserController 定义为指向应用程序中的控制器,而不是框架中的控制器。但也许它指向了正确的位置,只是 NetBeans 错误地显示了它。但如果不是这就是问题所在,那又是什么呢?

更新:

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

project/user/user/view/id/1

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

project/user

它不是使用类用户吗?或者这里会发生什么?正在使用什么控制器?没有?!

【问题讨论】:

    标签: php netbeans yii rights


    【解决方案1】:

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

    app/modules/user/controllers
    

    控制器多了,我放了

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

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

    project/user/user/...
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      相关资源
      最近更新 更多