So I’m trying to page items on my index page using the paginator and custom routes. It’s all through the index action, but the index action can show items sorted by newest, votes, active or views. Right now, the URL looks like this:
items/index/sort:created/direction:desc
And if you aren’t on page one, it looks like this:
items/index/sort:created/direction:desc/page:2
I’d like to use the router to have it look like this:
newest/
I can get that far with this route:
Router::connect(
'/newest/*',
array('controller'=>'items', 'action'=>'index', 'sort'=>'created', 'direction'=>'desc')
);
However, the pager links don’t follow the route. As soon as you click next page, you’re back to:
items/index/sort:created/direction:desc/page:2
How can I make this follow the router and give me what I want? Keep in mind, it’s all from the same controller action, I’m trying to route the sort parameters of pagination basically.
For me your code is working (I’ve tested your example). Have you done something unusual with the paginator helper?
Here is my Routes:
And here are the urls which I’ve seen when I sort by age column:
And oldest:
And it’s working with all links in the pager (first, prev, 1,2,3 next, last).