如何知道在codeigniter中使用URL调用哪个控制器

时间:2013-07-17 06:33:39

标签: php codeigniter codeigniter-url codeigniter-routing

我正在使用这样的路由

$route['Advertisement/1.0/(:any)']="v1/$1";

$route['Advertisement/1.1/(:any)']="v1_1/$1";

最终他们两个都做了同样的工作,但我必须保持他们两个,因为只是响应是相同的。

所有我想知道的是我如何知道使用URL调用哪个控制器。如果我知道这样的URL会相应地更改响应,所以我不需要维护两个控制器

1.0 or 1.1

我希望你明白我想问的是什么。

提前致谢。

3 个答案:

答案 0 :(得分:1)

假设您的网址如下所示:example.com/Advertisement/1.0 /...

$this->uri->segment(2);

将返回1.0或1.1

答案 1 :(得分:1)

根据Codeigniter的User Guide,如果您想知道被点击的网址,请使用:

$uri_segments = $this->uri->uri_string();

获取URI segments

此外,您可以使用current_url() URL helper获取完整的网址(包括细分受众群);要做到这一点:

// Load URL helper first (or use autoload config)
$this->load->helper('url');

// Get the current full URL
$url = current_url();

如果您想获得特定的URI片段,请使用:

// "n" is the segment number you wish to retrieve,
// in this case, n = 2 gets '1.0' or '1.1'
$segment = $this->uri->segment(n);

答案 2 :(得分:0)

如果我理解正确,您可以使用以下CI功能获取控制器名称和方法名称

$this->router->fetch_class();  // to get controller
$this->router->fetch_method(); // to get method