Bonjour, je voudrais savoir comment faire pour coder la gestion des slugs sans ID sous CakePHP ?
http://localhost/dev/1/page/mon-premier-titre
a la place de ce que l'on trouve dans le tuto de GA
http://localhost/dev/1/page/mon-premier-titre-1
Rien de bien compliqué, il suffit de modifier 3 fichiers, mais attention, chaque slug doit être unique pour que ça fonctionne bien, donc pense à vérifier lors de la création d'un article que le slug généré soit unique (et donc soit d'adapter le slug, soit d'avoir un nom d'article unique).
// app/Config/routes.php
Router::connect('/article/:slug',
array('controller' => 'posts', 'action' => 'view'),
array(
'pass' => array( 'slug'),
'slug' => '[a-z0-9\-]+'
)
);
// app/Controller/PostsController.php
public function view($slug) {
if(empty($slug)) {
throw new NotFoundException();
}
$post = $this->Post->find('first', array(
'conditions' => array('Post.slug' => $slug),
));
if(!$post){
throw new NotFoundException();
}
$this->set(compact('post'));
}
// app/View/posts/index.ctp
<?= $this->Html->link(__('En savoir plus'), array('controller' => 'posts', 'action' => 'view', 'slug' => $post['Post']['slug'])); ?>
Bonjour,
il suffit de rendre ton champ slug unique en base et obligatoire. Tu requêtes ensuite dessus.