Php 如何在HMVC Codeigniter中获取模块名称

Php 如何在HMVC Codeigniter中获取模块名称,php,codeigniter,hmvc,Php,Codeigniter,Hmvc,我有两个相同名称的模块中的控制器,两个都可以正常工作。我还有一个检查访问权限的函数,它使用$this->router->fetch_class()问题是$this->router->fetch_class()返回控制器名称,它是相同的。但我也需要你的名字 模块的结构 /modules /product /controllers /product.php /options.php [1] /models

我有两个相同名称的模块中的控制器,两个都可以正常工作。我还有一个检查访问权限的函数,它使用
$this->router->fetch_class()

问题是
$this->router->fetch_class()
返回控制器名称,它是相同的。但我也需要你的名字

模块的结构

/modules
    /product
        /controllers
            /product.php
            /options.php [1]
        /models
        /views
    /inventory
        /controllers
            /inventory.php
            /options.php [2]
        /models
        /views
和URL是:

[1]: ../product/options/function_name
[2]: ../inventory/options/function_name
那么,有没有办法在不更改控制器名称的情况下检查访问权限?

如前所述,您可以使用

使用
segment
可以获取url的每个部分

模块名称始终是域后的第一部分

$module\u name=$this->uri->segment(1);

如果需要更改url,请使用此处的路由文件。我不完全理解您的评论,但我认为路由不是问题,因为控制器工作正常。请看@-这应该为您提供足够的信息。顺便说一句:由于CI不支持正确的名称空间,因此无法在项目中两次使用相同的类名,因为您可以在冲突中轻松运行—特别是如果您使用HMVC—因为您可以使用
modules::run()