Symfony routing / annotations : conflit de routes (sur application non-symfony)
Bonjour à tous,
Je rencontre un petit problème sur une application développée en PHP, qui utilise certains composants de symfony & doctrine (routing, annotations...).
Sur mon Controller qui contient différentes actions, j'ai un conflit entre 2 routes qui à mon sens n'a pas lieu d'être...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| /**
* @Route("/composition/{composition_id}/{dupliquer}", name="composition")
*/
public function index(int $composition_id)
{
// Do something
}
/**
* @return bool
*
* @Route("/composition/uploadMedia", name="uploadMedia")
*/
public function uploadMedia()
{
// Do something
} |
Voici différents exemple selon la route que j'appelle...
http://www.exemple.com/composition/5
=> OK : la méthode index est appelée et l'id est bien récupéré
http://www.exemple.com/composition/uploadMedia
=> ERREUR : c'est toujours la méthode index qui est appelée (au lieu de uploadMedia), et une erreur de type est générée
Citation:
Argument 2 passed to CompositionsController::composition() must be of the type int, string given
Pourtant sur une application symfony classique, je ne rencontre (presque) jamais ce genre de problèmes et le système de routing me renvoie vers la bonne méthode... y-a-t-il un paramétrage supplémentaire à effectuer ?
Bien sur je pourrais allonger volontairement la route du style /composition/truc/machin/uploadMedia pour esquiver le problème mais je trouve ça bof comme solution :(
Si quelqu'un a une suggestion je suis preneur :D