Bonjour,

Je suis en train de faire l'ajout de mon entité recette pour mon site internet. Donc cette entité a une relation OneToMany avec une entité RecipeIngredient qui possède 3 attributs (ingredient, unité et quantité).

Pour crée mon formulaire, j'ajoute donc un RecipeIngredientType dans mon RecipeType.

Le problème vient lors de $this->form->bind($this->request)

Il veut passer une String à mon setRecipeIngredient qui attends un RecipeIngredient.

Ma question est la suivante :
Est-ce que je dois reconstruire mon entité recette pour ensuite la valider, ou il existe un moyen de le faire directement avec symfony ?

Ci-dessous un dump de la requête quand elle arrive dans mon Handler.

request: ParameterBag {#8 
    #parameters: array:1 [
      "recipe_type" => array:9 [
        "title" => "Test recette"
        "preparationTime" => "5"
        "cookingTime" => "5"
        "difficulty" => "1"
        "serves" => "5"
        "category" => "4"
        "description" => "fdsfds"
        "ingredients" => array:1 [
          0 => array:3 [
            "ingredient" => "Pâte"
            "quantity" => "120"
            "unit" => "10"
          ]
        ]
        "instructions" => array:1 [
          1 => array:1 [
            "texte" => "Faire chaugger les pâtes"
          ]
        ]
      ]
    ]
  }

Merci !

2 réponses


SimonAndGarfunkel
Réponse acceptée

Salut iiNku,

je n'ai pas tous les éléments (controller, entité...) pour te répondre avec certitude mais ton problème peut venir de l'ordre dans lequel se font les persist de tes différentes entités.
Il faut que tu persist ta recette avant les autres entités pour que Doctrine te génère un id.

iiNku
Auteur

Bon, j'ai réussis à corriger mon erreur mais le problème m'attend c'est que doctrine n'arrive pas à persister mon entité recette car il essaye d'insérer null dans les champs id_recipe dans mes autres entités.
Comment je peux régler ce problème ?