Bonjour à tous.
Alors voilà, je suis en train de suivre le tuto en vidéo et jusque la tout marchait. Mais, à la 24min 44s, lorsque j'ajoute une route, celle-ci:
Router::connect('/page/:slug-:id', array('controller' => 'pages', 'action' => 'show'), array('pass'=> array('id','slug')));
Ca marche :)
Mais si je continue et donc ajoute des conditions soit,
Router::connect('/page/:slug-:id', array('controller' => 'pages', 'action' => 'show'), array('pass'=> array('id','slug'), 'id'=>'[0-9]+','slug' =>'[a-z0-9\-]+'));
Ca ne marche plus, et me redonne l'URL: "pages/show/slug:ma_premiere_page/id:1" au lieu de "age/ma_premiere_page-1" :(
Je ne comprend pas j'ai tous vérifé..
Dans pageController.php j'ai:
<?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($id);
debug($this->request);
}
}
et dans mon dossier page dans le fichier 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; ?>
Quelqu'un pourrait m'éclairer? Merci :)
Je sais pas si je déterre un vieux post mais je répond quand même. Je ne sait pas si ça viens de la mais "ma_premiere_page" ne vérifie pas la condition [a-z0-9-]+ car il contient _ donc il faut soit faire Inflector::slug($titre,**'-'**) soit remplacer [a-z0-9-]+ par [a-z0-9**_**]+