Bonjour tout le monde,

Voilà j'ai un soucis avec l'url rewriting de mes pagination.

Voici en premier lieu mon route

Router::connect('/account/myfollowed/:slug-:id/*', array('controller' => 'users', 'action' => 'myfollowed', 'owner' => true), array('pass' => array('id', 'slug')));

Afin d'obtenir cela

/account/myfollowed/vente-1/

Jusque là tout fonctionne bien.
Pour les besoin de mon site, j'ai mis en place une pagination. Le soucis c'est que cela me retourne des url du style

/owner/users/myfollowed/1/vente/page:2

J'ai testé en entrant directement l'url

/account/myfollowed/vente-1/page:2

et cela fonctionne.

Après avoir cherché un bon moment et avoir testé plusieurs soluces, j'en suis arrivé à le faire fonctionner en faisant cela

$this->Paginator->options = array('url' => array('id' => $this->Paginator->params'id'], 'slug' => $this->Paginator->params'slug']));

Je trouve cela pas très propre donc j'écris ce post en espérant que quelqu'un puisse m'aider à faire cela plus proprement.

Merci bien.

2 réponses


Dans ton paginator tu pourrais enlever le passage par l'objet Paginator? (c'est une supposition!)

$this->Paginator->options = array('url' => array('id' => $this->params'id'], 'slug' => $this->params'slug']));

& dans ton router tu peux rajouté les regex comme validation

Router::connect(
        '/account/myfollowed/:slug-:id/*', 
                    array('controller' => 'users', 'action' => 'myfollowed', 'owner' => true), 
                    array( 'pass' => array('id', 'slug')
                              'id' => '[0-9]+',
                              'slug'=>'[a-zA-Z\-]+'
                    )
                );

J'espère ne pas m'être trompé :)

Roms
Auteur

Merci d'avoir répondu, malheureusement cela ne fonctionne pas.
Toujours

/owner/users/myfollowed/1/vente/page:2