Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony - Relation OneToOne

Sujet résolu
    6 avril 2020 à 20:17:44

    Bonjour, j'ai deux entités reliées par une relation OneToOne unidirectionnelle.

    Disons une entité mère et une fille.

    J'ai un formulaire mère qui imbrique un formulaire fille.

    J'ai un champs id_fille dans mon entité mère.

    Je souhaiterais que lorsque je valide mon formulaire, le champs id_fille soit automatiquement remplis avec l'id de la fille.

    Pour se faire j'ai vu qu'il fallait persist d'abord fille puis faire un mere->set(fille->id).

    Cependant j'ai sur différent code que parfois cette étape n'existe pas et l'id_fille est automatiquement remplis, quelqu'un sait m'éclairer la dessus svp ?

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      6 avril 2020 à 20:21:11

      Bonjour,

      En fait, pour les OneToOne, j'interviens juste dans l'entityType et pas dans le controller.

      Par exemple, j'ai deux entités : member et profile. Member et mère. Dans le builder de mon memberType je vais ajouter le profile :

      ->add('profile', ProfileType::class, [
                      'label' => 'Ce qu'on veut :',
                  ])

      Et dans mon questionnaire member, je vais avoir la partie avec mon profile...

      -
      Edité par Natoub 6 avril 2020 à 20:27:21

      • Partager sur Facebook
      • Partager sur Twitter
        6 avril 2020 à 20:22:55

        Natoub a écrit:

        Bonjour,

        En fait, pour les OneToOne, j'interviens juste dans l'entityType et pas dans le controller.


        pas compris ta réponse il existe un moyen de sauvegarder sans passer par un persist de fille puis de set la fille à la mère puis persist la mère ?
        • Partager sur Facebook
        • Partager sur Twitter
          6 avril 2020 à 20:29:05

          Symfony crée la form et persiste les données en fonction de ton entityType...

          • Partager sur Facebook
          • Partager sur Twitter
            6 avril 2020 à 20:29:21

            Ouais ok, mais au moment de sauvegarder, tu dois set(profile) pour member on est d'accord ? moi j'aimerais passer cette étape, j'ai vu sur certain code que c'etait possible

            Si profile est un objet et que dans ta table mysql tu as un id_profile dans la table member tu fais comment pour sauter cette étape ?

            -
            Edité par alixmut 6 avril 2020 à 20:30:40

            • Partager sur Facebook
            • Partager sur Twitter
              6 avril 2020 à 20:30:38

              Et du coup qu'as tu fait qui ne fonctionne pas ?

              • Partager sur Facebook
              • Partager sur Twitter
                6 avril 2020 à 20:34:10

                bah en gros, quand je persist member, il veut me persist l'objet profile dans mon champs id_profile au lieu de l'id du profile
                • Partager sur Facebook
                • Partager sur Twitter
                  6 avril 2020 à 20:45:31

                  Et en matière de code ça donne quoi sur ton controller ? 

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Symfony - Relation OneToOne

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown