J'ai deux itinéraires qui correspondent à une URL avec le même motif apparent, la différence réside dans la actionRoute $, cela ne devrait être adaptée si la variable: l'action sur elle est égale à « myaction ».exigences Zend_Router désadaptation
Si je vais à /fr/mypage/whatever/myaction il se passe comme prévu via $ actionRoute.
Si je vais à /fr/mypage/whatever/blahblah il obtient rejeté par $ actionRoute et compensée par $ genRoute.
Si je vais à /en/mypage/quel que soit, il doit correspondre à $ genRoute, mais il est remplacé par $ actionRoute au lieu de lancer et d'exception car l'action noactionAction() n'existe pas.
Je ne sais pas ce que je fais mal, je vous remercie de votre aide.
$genRoute = new Zend_Controller_Router_Route(
':lang/mypage/:var1/:var2',
array(
'lang' => '',
'module' => 'mymodule',
'controller' => 'index',
'action' => 'index',
'var1' => 'noone',
'var2' => 'no'
),
array(
'var1' => '[a-z\-]+?',
'lang' => '(es|en|fr|de){1}'
)
);
$actionRoute = new Zend_Controller_Router_Route(
':lang/mypage/:var1/:action',
array(
'lang' => '',
'module' => 'mymodule',
'controller' => 'index',
'action' => 'noaction',
'var1' => 'noone',
),
array(
'action' => '(myaction)+?',
'var' => '[a-z\-]+?',
'lang' => '(es|en|fr|de){1}',
)
);
$router->addRoute('genroute',$genRoute);
$router->addRoute('actionroute',$actionRoute);
Salut Tim, ça ne fonctionne pas, il jette une exception avec le message « action non spécifiée ». Merci quand même. – elbicho
étrange, je l'ai testé votre code d'exemple et il ne fonctionne pour moi avec cette solution en place. Quelle version de ZF utilisez-vous? Une autre solution hacky serait de remplacer: action « myaction » dans votre actionRoute $, retirez le regexp pour l'action et l'action du code difficile à « myaction » dans le premier tableau. –
J'utilise 1.8.4PL1 – elbicho