Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
D'abord je pense qu'il faut que je vous dise que je suis un gros débutant sur ZF, 4 jours pas plus d'ancienneté...
Et donc, j'ai du mal avec le router. Voila ce que je voudrais.
J'ai les routes par défaut qui me conviennent parfaitement : /module/controller/action/param1/value1 etc...
Ce que je voudrais c'est rajouter une route pour supprimer de l'url le "param1". Pour avoir une url du type :
/module/controller/action/8 ou /controller/action/8
Aussi, je voudrais pouvoir faire :
/module/controller/action/version/12 ou /controller/action/version/12
Dans ce cas retrouver le comportement par défaut.
Je pense qu'il faut utiliser le router avec Regexp mais j'aimerais un peu d'aide.
Voici mon code :
$router = Zend_Controller_Front::getInstance()->getRouter(); $router->addRoute( "basic", new Zend_Controller_Router_Route( "*/:controller/:action/:id/*" ) );
Il faudrait que je puisse tester pour etre sur que "id" est [0-9]
Merci d'avance;)
Hors ligne
perdu, c'est sans les regexp la syntaxe si tu prends crée une route standard :
$router->addRoute( "basic", new Zend_Controller_Router_Route( ":controller/:action/:id" ) );
A+, Philippe
Hors ligne
Merci de cette réponse, cependant du coup, je me demande si j'ai été clair.
Avec ce code cette url (avec le module) ne fonctionne pas, je ne renvoie pas id=8 dans le getParam
/default/index/index/8
Autre exemple : ne renvoie ni le id=8 mais 8=version
/index/index/8/version/12
En fait j'avais mis des * devant et derrière pour pallier ces problèmes, la derniere chose qui me manque c'est de tester le 8 pour remplir ou non la variable "id" (si c'est un nombre ou non)
C'est plus clair ? (autrement, est-ce que les étoiles sont une bonne chose )
Merci
Dernière modification par Plopix (12-12-2008 16:59:29)
Hors ligne
C'est que ta route n'a pas été reconnu
Dans ton premier cas, il manque pt etre :module
et dans le deuxième, ca ne correspond pas non plus
(version et 12 ne sont pas reconnu)
Dans le dernier cas, si tu ne connais pas le nombre de paramètre, il faut utiliser * dans ta route
Hors ligne