Problème de routing

Par mariecomet, il y a 11 ans


Bonjour, je début tout juste avec CakePHP, je suis le Tuto (1er jour).
Version : 2.6.1.

J'ai un soucis avec l'écriture des URL, j'ai configuré le fichier routes.php pour avoir une URL "propre", mais il me ressort toujours ceci :
http://localhost/cakephp/Pages/show/slug:ma-premiere-page/id:1

Je voudrais que show ne s'affiche pas (d'ailleurs je ne comprends pas pourquoi il est là?), et enfin que slug: et id: non plus.
J'ai suivis le tuto pas à pas, vérifié, re re re vérifié, je ne comprends pas ce qu'il cloche. A l'étape ou je suis, normalement l'url devrait être propre.

Pour le code dans routes.php :

Router::connect('/:slug-:id', array( 'controller'=>'pages', 'action'=>'show'), array( 'pass'=> array( 'id', 'slug'), 'id'=> '[09]+', 'slug'=> '[a-z0-9\-]+') ); Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));

Code dans index.ctp

<?php foreach($pages as $k=>$v): $v = current($v); ?> <?php echo $this->Html->link($v['name'], array( 'action'=>'show', 'slug'=>$v['slug'], 'id'=>$v['id'] )); ?> <?php endforeach; ?>

Et code dans PagesController.php :

<?php class PagesController extends AppController { public $uses = array('Post'); function index() { $d['page'] = current($this->Post->find('first', array( 'conditions' => array('type' => 'page' )))); $d['pages'] = $this->Post->find('all', array( 'conditions' => array('type' => 'page' ))); $this->set($d); } function show($id = null, $slug = null) { debug($this->request); } } ?>

Si vous pouvez éclairer ma lenterne :-)

Merci,

Marie

2 réponses

mariecomet, il y a 11 ans

Tiens Zikembar c'est drôle de te retrouver ici ;)
Ah oui j'ai interverties deux lignes dans mon index, et ça fonctionne.
Merci bien :)