Dashrath
Dashrath

Reputation: 2189

how to set cakephp paginator url for custom route

I am making blog and url route is like this-

Router::connect('/blog/c/:catid/*', 
array('controller' => 'blogarticles', 'action' => 'index'));

it works well with url as- /blog/c/3/other-articles

but when i use paginator in view as

  echo $this->Paginator->numbers();

it generates url as- /blogarticles/index/other-articles/page:2

What changes should in make in paginator to generate proper url.

Please suggest possible solution , Thanks in advance

Upvotes: 0

Views: 3677

Answers (2)

Felix Imafidon
Felix Imafidon

Reputation: 177

This should solve your problem:

$this->Paginator->options(
    array(
        'controller' => 'blog',
        'action' => 'c',
        $catid,
        $title
    )
);

The trick is to pass blog as the controller and c as the action, and all other variables (NOT LIMITED TO $catid and $title) as additional parameters, sequentially!

NOTE: I assumed here that you have "set" $catid and $title from your Controller, to the current "category id" and "title" respecting. I also assumed that your URLs are always in the format: /blog/c/:catid/:title

You may also want to view my answer to a similar question: https://stackoverflow.com/a/25097693/2862423

Upvotes: 2

Justin Yost
Justin Yost

Reputation: 2340

What you want is to set the options for the PaginatorHelper for that view:

<?php $this->Paginator->options(array('url' => '/blog/c/3/other-articles')); ?>

CakePHP Book Section on the PaginatorHelper Options Function: http://book.cakephp.org/2.0/en/core-libraries/helpers/paginator.html#modifying-the-options-paginatorhelper-uses

Upvotes: 0

Related Questions