首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CodeIgniter:如何获取控制器、操作、网址信息

CodeIgniter:如何获取控制器、操作、网址信息
EN

Stack Overflow用户
提问于 2010-01-14 12:03:24
回答 11查看 205.9K关注 0票数 124

我有这些URL:

如何从这些URL中获取控制器名称、操作名称。我是CodeIgniter菜鸟。是否有任何帮助函数来获取此信息

例如:

代码语言:javascript
复制
$params = helper_function( current_url() )

其中$params变成了类似于

代码语言:javascript
复制
array (
  'controller' => 'system/settings', 
  'action' => 'edit', 
  '...'=>'...'
)
EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-01-14 12:22:37

您可以使用URI Class

代码语言:javascript
复制
$this->uri->segment(n); // n=1 for controller, n=2 for method, etc

我还被告知以下工作,但目前无法测试:

代码语言:javascript
复制
$this->router->fetch_class();
$this->router->fetch_method();
票数 227
EN

Stack Overflow用户

发布于 2010-01-15 19:44:57

您应该这样做,而不是使用URI段:

代码语言:javascript
复制
$this->router->fetch_class(); // class = controller
$this->router->fetch_method();

这样你就知道你总是在使用正确的值,即使你在一个路由的URL后面,在一个子域中,等等。

票数 135
EN

Stack Overflow用户

发布于 2016-01-05 20:10:14

这些方法已弃用。

代码语言:javascript
复制
$this->router->fetch_class();
$this->router->fetch_method();

您可以改为访问属性。

代码语言:javascript
复制
$this->router->class;
$this->router->method;

请参阅codeigniter user guide

URI路由方法fetch_directory()、fetch_class()、fetch_method()

由于属性CI_Router::$directoryCI_Router::$classCI_Router::$method是公共的,并且它们各自的fetch_*()不再只返回属性-保留它们是没有意义的。

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

$this->路由器->目录;$this->路由器->类;$this->路由器->方法;

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2062086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档