【问题标题】:Know controller name in Codeigniter知道 Codeigniter 中的控制器名称
【发布时间】:2018-06-30 23:07:52
【问题描述】:

对于我的 Codeigniter (v 3.1.7) 项目,我创建调试菜单(如 prestashop),其中包含登录用户的所有信息、页面错误...以快速调试页面。

所以,我想调用控制器的名称和函数的名称。 如果我在“登录”页面上,我想显示:

Controller: Account
Function: Login

我在this post 上找到了针对我的问题的提示,但我们使用 Url REWRITING 并且 url 的名称不是控制器的真实名称。

【问题讨论】:

标签: codeigniter


【解决方案1】:

如果你的 CI 版本低于 3,你必须这样使用:

$this->router->fetch_class();
$this->router->fetch_method();

如果您的 CI 版本是 3 或更高版本。这些方法已弃用。

$this->router->fetch_class();
$this->router->fetch_method();

您可以改为访问属性。

$this->router->class;
$this->router->method;

codeigniter user guide

URI 路由方法 fetch_directory()、fetch_class()、fetch_method() 使用属性 CI_Router::$directory、CI_Router::$class 和 CI_Router::$method 是公共的,并且它们各自的 fetch_*() 不再做任何其他事情来返回属性 - 保留它们没有意义。

这些都是内部的、未记录的方法,但我们选择暂时弃用它们以保持向后兼容性以防万一。如果你们中的一些人已经使用了它们,那么您现在可以直接访问这些属性:

$this->router->directory;
$this->router->class;
$this->router->method;

【讨论】:

    【解决方案2】:

    您可以使用 URI 类来获取该信息:

    $this->uri->segment(n); // n=1 for controller, n=2 for method, etc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      相关资源
      最近更新 更多