문제

I am using routing like this

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

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

eventually both of them just do same work but i have to maintain both of them because of just response is same.

All is i want to know is how do i get to know the which controller is called using URL .If i get to know the URL like so will change the response accordingly so i don't need to maintain two controllers

1.0 or 1.1

I hope you understand what i am trying to ask.

Thanks in advance.

도움이 되었습니까?

해결책

According to Codeigniter's User Guide, If you want to know the URL which is hit, then use:

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

To get the URI segments.

Also, you can use current_url() URL helper to get the full URL (including segments); To do that:

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

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

And if you want to get a specific segment of URI, use:

// "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);

다른 팁

Assuming your URL looks like this: example.com/Advertisement/1.0/...

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

will return 1.0 or 1.1

If i understood correctly, you can get the controller name and method name by using the following CI functions

$this->router->fetch_class();  // to get controller
$this->router->fetch_method(); // to get method
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top