IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Symfony 5 - routing - paramètre optionnel incorrectement affecté


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut Symfony 5 - routing - paramètre optionnel incorrectement affecté
    Bonjour,

    Je travaille sous Symfony 5. J'ai une route contenant 2 paramètres dont le second est optionnel. Lorsque je fais appel à cette route sans passer le paramètre optionnel, celui-ci contient une autre valeur que la valeur null que je lui affecte par défaut.

    Voici ma route :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     /**
         * Creating and updating advert
         *
         * @Route("/advert/description/create/{owner}/{advert}", name="advert.description.create")
         * 
         * @param Owner $owner
         * @param Advert $advert
         * @param Request $request
         * @param EntityManagerInterface $manager
         * 
         * @return Response
         */
        public function descriptionForm(Owner $owner, Advert $advert = null, Request $request, EntityManagerInterface $manager): Response
        {
     
            dump($advert);
    Exemple, lorsque je tape cette url "https://127.0.0.1:8000/en/advert/description/create/1", le dump me sort un objet portant l'id 2.

    Je suis un peu perdu...

    Quelqu'un aurait une idée?

    Merci d'avance pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    Est-ce que ça pourrait venir de ça : https://symfony.com/doc/current/bund...-automatically
    En particulier ce passage :
    The converter will attempt to do a findOneBy() fetch by using all of the wildcards in your route that are actually properties on your entity (non-properties are ignored).
    A priori tu peux contrôler le comportement en ajoutant l'annotation @ParamConverter et en définissant dedans des options : https://symfony.com/doc/current/bund...verter-options
    Dans ton cas peut-être qu'en combinant les options exclude et strip_null, tu pourrais faire en sorte que le DoctrineConverter ne récupère rien quand le paramètre de la route n'est pas défini... cela dit ça risque de lever une 404 tout ça !

    Tu seras peut-être obligé de modifier aussi le paramétrage de ta route, cf. la fin de ce chapitre : https://symfony.com/doc/current/rout...nal-parameters

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Merci beaucoup pour ton aide!

    En effet, j'ai ajouté ces annotations et ça a résolu mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
       /**
         * Creating and updating advert
         *
         * @Route("/advert/description/create/{owner}/{advert}", name="advert.description.create")
         * 
         * @ParamConverter("owner", options={"id" = "owner"})
         * @ParamConverter("advert", options={"id" = "advert"})
         * 
         * @param Owner $owner
         * @param Advert $advert
         * @param Request $request
         * @param EntityManagerInterface $manager
         * 
         * @return Response
         */

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Route symfony dans le paramètre url d'un appel ajax
    Par abc.xyz dans le forum Symfony
    Réponses: 8
    Dernier message: 03/08/2014, 08h17
  2. Routes avec plusieurs paramètres optionnels complexes
    Par Oberown dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 29/11/2013, 09h39
  3. [2.x] Problème de routing avec un paramètre optionnel
    Par rica1503 dans le forum Symfony
    Réponses: 6
    Dernier message: 12/05/2011, 04h21
  4. [ZF 1.10] [Zend_Route] Route et paramètres optionnels
    Par shadypierre dans le forum Zend Framework
    Réponses: 5
    Dernier message: 20/07/2010, 18h38
  5. paramètre optionnel dans une fonction
    Par titoumimi dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo