Salut !!
J'ai un petit soucis avec les routing. Je cherche comment faire ce type de routing comme le fait grafikart
sur dans l'affichage des tutos http://www.grafikart.fr/tutoriels/html-css/menu-accordeon-283 par exemple.
Dans mon cas je voudrais avoir :
http://4za.org/bals/1892-1914/1925-nom-du-bal-12
C'est à dire utiliser le controller Bals avec l'action bals( $id = null, $slug = null, $annee = null, $periode = null).
J'ai tenté d'écrire ça dans mes routes :
// Pour les pages d'un des Bals
Router::connect('/bals/:periode/:annee-:slug-:id', array('controller' => 'bals', 'action' => 'bals'), array('pass'=> array('id', 'slug', 'annee', 'periode'), 'periode' => '[0-9]{4}\-[0-9]{4}', 'id' => '[0-9]+', 'slug' => '[a-z0-9\-]+', 'annee'=>'[0-9]{4}'));
Mais j'obtiens cette erreur où il considère que ma période est l'action qu'il faut utiliser au lieu ce l'action définit plus loin comme "bals"
Missing Method in BalsController
Error: The action 1892-1914 is not defined in controller BalsController
Error: Create BalsController::1892-1914() in file: app/Controller/BalsController.php.
<?php
class BalsController extends AppController {
public function 1892-1914() {
}
}
Notice: If you want to customize this error message, create app/View/Errors/missing_action.ctp
Stack Trace
#0 /Users/Sko/Documents/05-associations/02-4zarts/Site/lib/Cake/Routing/Dispatcher.php(104): Controller->invokeAction(Object(CakeRequest))
#1 /Users/Sko/Documents/05-associations/02-4zarts/Site/lib/Cake/Routing/Dispatcher.php(86): Dispatcher->_invoke(Object(BalsController), Object(CakeRequest), Object(CakeResponse))
#2 /Users/Sko/Documents/05-associations/02-4zarts/Site/app/webroot/index.php(96): Dispatcher->dispatch(Object(CakeRequest), Object(CakeResponse))
#3 {main}
Je cherche désespérément comment solutionner ce problème...
Merci pour vos conseils.
hmmm hmmm je viens de trouver ma réponse ^^
il faut placer avant la route cette ligne pour lui permettre de savoir que ce n'est pas l'action mais une variable d'un autre nom.
Router::connectNamed(array('periode'));