[SYMFONY] erreur "cascade" lors de l'ajout détail commande

Résolu/Fermé
rdbn Messages postés 95 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 26 décembre 2022 - Modifié le 14 oct. 2021 à 14:55
rdbn Messages postés 95 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 26 décembre 2022 - 14 oct. 2021 à 16:51
Bonjour,

Je rencontre un problème lorsque je je veux persister et flush mon entité orders_details en bdd.

voici l'erreur rencontré



Donc quand j'ajoute des produits dans la panier c'est OK,
ensuite je récupère toutes les info concernant le panier les produits la quantité c'est OK,

je crée une commande Order (en enlevant mon morceaux de code qui crée à la suite un order_details, ma commande est bien enregistré en bdd) c'est OK,

Mais c'est quand je créer ma commande de détail que l'erreur survient j'ai donc ajouté un cascade="persist" dans le ManyToOne de product dans orders_details entity.

J'ARRIVE SUR CETTE ERREUR !!



supplier est une entité lié a mon entité products dans chaque ligne produit la colonne suppliers_id à sont supplier. l'identifiant d'entité c'est sont ID.

Quelqu'un pourrait bien m'expliquer cette erreur s'il vous plaît.

Mon Controller simplifié

// Création de la commande
// je passe toutes les infos récupéré du panier
        $order = new Order(); 
        $order->setReference($reference);
        $order->setTypePayment($paymentType);
        $order->setShipping($shippingType);
        $order->setTotal($total);
        $order->setDatePayment(new \DateTimeImmutable);
        $order->setUser($this->getUser());
        $order->setStatus($statusType);

        $manager->persist($order);
// je boucle dans mon panier je récupère mon app\Entity\product et sa quantité
        foreach($panierData as $value) {
            // Création du détail de la commande
            $productsOrder = $value['product'];
            $quantitiesOrder = $value['quantity'];
            
            $orderDetails = new OrderDetails();
            $orderDetails->setOrders($order);
            $orderDetails->setProduct($productsOrder);
            $orderDetails->setQuantity($quantitiesOrder);

            $manager->persist($orderDetails);
        }

      $manager->flush();


N'hésitez pas à me le dire dire si certaine chose sont pas clair ou si vous avez besoins d'autre document pour mieux comprendre

Merci d'avance
Configuration: Windows / Chrome 94.0.4606.71

1 réponse

rdbn Messages postés 95 Date d'inscription samedi 3 avril 2021 Statut Membre Dernière intervention 26 décembre 2022
14 oct. 2021 à 16:51
J'ai résolu mon problème mon erreur :)
comme je récupérer mes produits via la session en débuggant mon produits de mon panier que je passé à mon setProduct je voyais au lieu d'un Entity supplier un proxy avec seulement l'id est aucune données du supplier
j'ai donc re récupéré mon produit via le repositoryProduct par rapport à l'id (seule donnée récupéré) du supplier de mon entité produit de mon panier.

En gros je re récupère mon produit en entier via le repository par rapport à la seule donnée du supplier du produit dans le panier.

quand je réaffiche le produit à cette étape là j'ai bien toute les données du supplier de mon produit.
0