Search code examples
phpcodeignitercodeigniter-urlcodeigniter-routing

How to know which controller is called using URL in codeigniter


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.


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