Question

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.

Was it helpful?

Solution

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

OTHER TIPS

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top