Bonjour (ou bonsoir),
je travaille sous CakePHP depuis quelque temps pour un site personnel et permettant de m'entrainer et je suis actuellement bloqué à la pagination dans la création d'un blog.
En effet, l'URL de base (lors de la pagination) était :
/posts/index/page:2 (posts étant le nom de mon controller) et en utilisant paramType égal à querystring, mon URL devient une méthode GET (/?page=2).
<?php
var $paginate = array(
'Post' => array(
'paramType' => 'querystring'
));
?>
Malheureusement je n'arrive toujours pas à modifier l'URL en utilisant le rooter.
J'ai essayé de regarder sur la documentation mais je n'ai rien trouvé à part le querystring.
J'ai utilisé, au début, le rooter en essayent de faire passer un paramètre et d'utilisé la fonction option de la class paginator mais je me suis aperçu qu'elle n'existait plus et n'ayant pas idée de ce qu'il fallait faire je suis vite tombé dans l'impasse.
Router::connect('/blog/page/:page', ['controller' => 'posts', 'action' => 'index'], ['pass' => ['page'], 'page' => '[0-9]+']);
Merci de votre aide pour m'éclaircir sur la démarche à suivre.
À bientôt.
Bonjour.
Essaies tout simplement :
Router::connect('/blog/*', ['controller' => 'posts', 'action' => 'index']);
Bonjour,
ta technique ne fonctionne pas malheureusement.
Router::connect('/blog/*', ['controller' => 'posts', 'action' => 'index']);
L'URL est toujours de type GET (?page=x),
j'ai déjà plusieurs liaison à mon rooter pour le controller posts et l'action index.
Router::connect('/', ['controller' => 'posts', 'action' => 'index']);
Router::connect('/blog/:slug-:id', ['controller' => 'posts', 'action' => 'lire_article'], ['pass' => ['slug', 'id'], 'slug' => '[a-z0-9\-]+', 'id' => '[0-9]+']);
C'est pour ça que mettre un "/blog/*" ne pourrat pas fonctionner et que je pensais utiliser un paramètre avec un "$this->Paginator->options()" mais qu'il n'existe plus.
À bientôt.
Bonsoir (ou bonjour) Greg,
merci pour ta réponse mais, malheureusement, je n'ai pas eu le temps de développer un minimum ce soir donc je test ta solution le plus vite possible et je t'informe de son fonctionnement.
Merci encore, à bientôt !
Je confirme que ce n'est pas la solution.
CakePHP ne reconnait pas la fonction "options", cependant j'ai utilisé la première solution de Lartak et en passant le paramtype de paginate en "named" permettant donc de générer un url final en /blog/page:x.
Donc problème résolu à moitier et je compte bien continuer de mon côté pour chercher une solution.
Je vous remercie.
À bientôt.
Je dispose de la 3.0
Tu ne crois pas que tu aurais pu le préciser dans l'énnoncé de ton sujet ?
Nous ne pouvons pas deviner, en général, ceux qui ne précisent pas leur version de CakePHP, c'est qu'ils sont sous la version 2 et non la 3.