codeigniterroutespagination

how to make codeigniter routing to work with paging


I have the following routes for the news that works like a charm:

$word5 = urlencode('mygreek-keyword-here');
$route[$word5] = "news/displayAllNews";

and this page display all news with the desired keyword in the address bar. But...there is always a but...I have paging on this page, so when i click on next page link...page works but with old non-friendly seo url, that is:

news/displayAllNews/10/10

while I would like to have is: mygreek-keyword-here/10/10

code that i have in my controller for the paging is as follow:

$config['base_url'] = site_url('/news/displayAllNews/'.$limit.'/');

what should i do in routes.php and in my controller to get the desired result?


Solution

  • You could get the string of URI by $this->uri->uri_string() method, and set the pagination config as follows:

    $config['base_url'] = site_url($this->uri->uri_string() .'/'. $limit.'/');
    

    Note that the URI library is loaded automatically, it doesn't need to load it manually.

    Update:
    Change the route rule to:

    $route["$word5(.*)"] = "news/displayAllNews$1";
    

    If it doesn't work yet, remove the .'/'. $limit.'/' phrase and let the pagination to add the limit itself by:

    $config['per_page']         = 10;   // or $limit, default items per page.
    $config['use_page_numbers'] = FALSE;