2010-07-17 5 views
5

Nell'applicazione Cake ho un controller "progetti_completati". L'azione dell'indice non accetta argomenti e elenca alcuni progetti. Diverse pagine sono accessibili example.com/completed_projects/index/page:23 eccConfigurazione percorsi per argomenti denominati in CakePHP

Voglio fare del URL come questo:

example.com/portfolio/page23 

Ovviamente ho bisogno di fare alcuni itinerari per questo. Ho provato molti di loro come:

Router::connect('/portfolio/page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('pass'=>'page:num', 'num'=>'[0-9]+')); 

e anche:

Router::connect('/portfolio/:page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('named'=>'num', 'page'=>'page', 'num'=>'[0-9]+')); 

Ho provato anche la modifica di nuovo e di nuovo, ma nessuno di loro funziona bene.

Sto usando CakePHP 1.3. Qualsiasi aiuto sarà apprezzato.

risposta

1
Router::connect('/portfolio/page:page_num', 
    array('controller'=>'completed_projects', 'action'=>'index'), 
    array('page_num'=>'[\d]+') 
); 

nel controller, accesso PAGE_NUM con:

$this->params['page_num']; 
+0

Questo passa PAGE_NUM (come 23) per l'azione, ma voglio che un parametro denominato-essere passato come pagina: 2 è passato. Grazie per aver pensato di aiutare comunque. –

+0

Siamo spiacenti, ho aggiornato la risposta per soddisfare le tue esigenze, si spera :) – Oscar

+0

Grazie ancora Oscar. Potresti per favore elaborare come utilizzare questa o qualsiasi variabile per l'impaginazione? Ottenere solo una variabile passata nel controller non è un requisito. Voglio che sia chiamato argomento (come pagina: 33) in modo che possa essere usato per l'impaginazione. È possibile? –