Envoyé par
anikon
Le post a peut être été mis à jour mais je vois 4 routes identique (selon leur pattern). Et petite précision, dans Symfony 2 c'est la première route trouvée qui est utilisée :
http://symfony.com/fr/doc/current/book/routing.html
Le routeur Symfony choisira toujours la première route correspondante qu'il trouve
Ce que tu dis est vrai pour le matching des routes.
1 2 3 4 5 6 7 8
|
route_key_1:
pattern: /my/route/{parameter}
defaults: { _controller:MyBundle:Controller:action1 }
route_key_2:
pattern: /my/route/{parameter}
defaults: { _controller:MyBundle:Controller:action2 } |
L'appel de l'URL /my/route/3 va effectivement utiliser la première route qui matche : donc rentrer dans l'action1.
Mais là il ne s'agit pas de ça : si tu définis plusieurs routes avec des actions différentes possédant la même clé, c'est la dernière clé qui sera prise en compte au moment de générer une URL.
1 2 3 4 5 6 7 8
|
route_key:
pattern: /my/route/{parameter}
defaults: { _controller:MyBundle:Controller:action1 }
route_key
pattern: /my/otherRoute
defaults: { _controller:MyBundle:Controller:action2 } |
Dans ce cas, (et c'est le cas pour l'auteur de ce post) c'est la dernière route qui sera générée.
$this->generateUrl('route_key')
... génèrera l'url /my/otherRoute.
D'ou le message d'erreur qu'il signale :
"Some mandatory parameters are missing ("publishedAt") to generate a URL for route "obtao-article-search".
qui correspond à la dernière route.
Partager