5 votes

Configuration des routes pour les arguments nommés dans CakePHP

Dans mon application Cake, j'ai un contrôleur "completed_projects". Son action index ne prend aucun argument et liste certains projets. Les différentes pages sont accessibles par example.com/completed_projects/index/page:23 etc.

Je veux que les url soient comme ceci :

example.com/portfolio/page23

Il est évident que je dois établir des itinéraires pour cela. J'en ai essayé plusieurs comme :

Router::connect('/portfolio/page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('pass'=>'page:num', 'num'=>'[0-9]+'));

et aussi :

Router::connect('/portfolio/:page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('named'=>'num', 'page'=>'page', 'num'=>'[0-9]+'));

J'ai également essayé de les modifier encore et encore mais aucune d'entre elles ne fonctionne bien.

J'utilise CakePHP 1.3. Toute aide sera appréciée.

1voto

Oscar Points 391
Router::connect('/portfolio/page:page_num',
    array('controller'=>'completed_projects', 'action'=>'index'),
    array('page_num'=>'[\d]+')
);

Dans votre contrôleur, accédez à page_num avec :

$this->params['page_num'];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X