2017-09-19 14 views
1

テーブルタイプとテーブルlignePanierがありました。 lignePanierテーブルのtype_idカラムは、lignePanierテーブルのidを参照する外部キーです。Doctrine - 新しいエンティティが関係式Symfony3で見つかりました

私は関係が設定されているタイプは多くのlignesPanierを持っている可能性があります。私は両方のテーブルのエンティティを作成しました。

また、多くのlignesPanierを持つ可能性のあるテーブルパニエがありました。

私のPObjectが 既存lignePanierに、既存のタイプを追加し、データベースここ

にすべてを保存することですが、私のタイプのエンティティである:ここ

/** 
* One type has Many lignesPanier. 
* @ORM\OneToMany(targetEntity="EK\EcommerceBundle\Entity\lignePanier", mappedBy="type" , cascade={"persist"}) 
*/ 

private $lignesPanier; 

は私のlignePanierエンティティである: `

/** 
* Many lignes panier have One type. 
* @ORM\ManyToOne(targetEntity="EK\PlateformeBundle\Entity\Type", 
inversedBy="lignesPanier") 
* @ORM\JoinColumn(name="type_id", referencedColumnName="id") 
*/ 

private $type;` 

パニエエンティティ:

私はすべてのデータベースに保存したいここ

$user = $this->getUser(); 
       $panier = $user->getPanier(); 

        if ($this->get('session')->get('vehicule') != null) 
        { 
         $type = $this->get('session')->get('vehicule'); 
         $lignePanier->setType($type); 
        } 

        $lignePanier->setPanier($panier); 
        $lignePanier->setPiece($piece); 
        $lignePanier->setPrix($prix); 

        $panier->addLignePanier($lignePanier); 
        $panier->setNumArticles($panier->getNumArticles() + 
        $form->getData()->getQuantite()); 


       $montant = $panier->getMontant() + $prix ; 
       $panier->setMontant($montant); 


       $em->flush(); 

私のコードは動作しdid'nt、私はこのエラーを得た:「

A new entity was found through the relationship 
'EK\EcommerceBundle\Entity\lignePanier#type' that was not configured to 
cascade persist operations for entity: Essence 1.6 i 90 cv Boite 
automatique. To solve this issue: Either explicitly call 
EntityManager#persist() on this unknown entity or configure cascade persist 
this association in the mapping for example @ManyToOne(..,cascade= 
{"persist"}). 
+0

カスケード= {" PE:NT理由を理解しますrsist "}が間違っている場合は、LignePanierエンティティに入れてみてください。 – AirBair

+0

私は試しましたが、このエラーがあります:通知:未定義のインデックス:0000000068fb94b5000000007a524eeb – Sabra

+0

パニエはエンティティですか?私たちにそれらを見せることができますか? –

答えて

-1

私はこのコードを試してみましたが、それがIDIDにすぎない作品

   $user = $this->getUser(); 
       $panier = $user->getPanier(); 

       if ($this->get('session')->get('vehicule') != null) 
       { 
         $type = $this->get('session')->get('vehicule'); 
         $Type = $em- 
         >getRepository('EKPlateformeBundle:Type')- 
         >find($type->getId()); 
         $lignePanier->setType($Type); 
       } 

       $lignePanier->setPanier($panier); 
       $lignePanier->setPiece($piece); 
       $lignePanier->setPrix($prix); 

       $panier->addLignePanier($lignePanier); 
       $panier->setNumArticles($panier->getNumArticles() + 
       $form->getData()->getQuantite()); 

       $montant = $panier->getMontant() + $prix ; 
       $panier->setMontant($montant); 


       $em->flush(); 

`

関連する問題