Bonjour, voila j'ai un soucis avec mes routes.
Voici mon code pour les routes concernant la page 'this-is-reggae':

Router::connect('/this-is-reggae',array('controller'=>'pages','action'=>'thisisreggae','admin'=>false));
Router::connect('/this-is-reggae/page::page/:id',array('controller'=>'pages','action'=>'thisisreggae','admin'=>false),array('pass'=>array('id'),'id'=>'[0-9]+'));
Router::connect('/this-is-reggae/:id-:slug',array('controller'=>'pages','action'=>'thisisreggae','admin'=>false),array('pass'=>array('id','slug','pag'),'id'=>'[0-9]+'));

Voici le code de ma vue :

echo $this->Html->image('45t/'.$vv'cover'],array('alt'=>$vv'cover'],'class'=>'miniDisk','url' => array("controller"=>'pages','action'=>'thisisreggae','id'=>$vv'id'],'slug'=>$slug,'pag'=>$pageActu)));

Et voici l'action de mon controller :

public function thisisreggae($id = null,$slug = null,$pag = null){  
        if(!empty($this->request->query'page'])){
            $p = $this->request->query'page'];
        }
        else{ 
            $p = '1';
        }
        $this->paginate = array(
                'order' => 'id DESC',
                'limit' => 9,
                'paramType' => 'querystring'
        );
        if(empty($id)){
            $page=$this->Post->find('first',array(
                'conditions'=> array('Post.slug'=>'this-is-reggae','type'=>'page')
            ));
            $d'page']= current($page);
            $disk=$this->Disk->find('first',array(
                'order' =>  array('Disk.id DESC')
            ));
            $d'disk']= $disk;
            $d'diskAll'] = $this->Paginate('Disk');
            $this->Session->write('pagination',$p);
            $this->set($d);
        }
        else{
            $page=$this->Post->find('first',array(
                'conditions'=> array('Post.slug'=>'this-is-reggae','type'=>'page')
            ));
            $d'page']= current($page);
            $disk=$this->Disk->find('first',array(
                'conditions'=> array('Disk.id'=>$id)
            ));
            $d'disk']= $disk;
            $d'diskAll'] = $this->Paginate('Disk');
            $this->Session->write('pagination',$p);
            $this->set($d);
            $this->Session->destroy();
        }
    }

J'obtient comme url : http://127.0.0.1/monsite/pages/thisisreggae/id:36/slug:Test3/pag:1
au lieu de : http://127.0.0.1/monsite/this-is-reggae/36-Test3

Est ce que quelqu'un peut m'aider svp?

Merci d'avance.

2 réponses


Mais les règles les plus détaillé en premier.

Commence par

Router::connect('/this-is-reggae/page::page/:id',array('controller'=>'pages','action'=>'thisisreggae','admin'=>false),array('pass'=>array('id'),'id'=>'[0-9]+'));
Router::connect('/this-is-reggae/page::page/:id',array('controller'=>'pages','action'=>'thisisreggae','admin'=>false),array('pass'=>array('id'),'id'=>'[0-9]+'));
Router::connect('/this-is-reggae',array('controller'=>'pages','action'=>'thisisreggae','admin'=>false));
duffJohn
Auteur

En fait comme me l'a indiqué jails sur le chat IRC, il fallait simplement rajouter :pag dans l'url.
Mais merci Grafikart pour la règle.