2011-12-07 12 views
0

EDITOneToMany関係の教義生成

はのは、次のモデルを見てみましょうマッピング:インポート:

class Toto 
{ 
    /** 
    * @var integer $idtoto 
    * 
    * @ORM\Column(name="idtoto", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $idtoto; 



    /** 
    * Get idtoto 
    * 
    * @return integer 
    */ 
    public function getIdtoto() 
    { 
     return $this->idtoto; 
    } 
} 

class Tata 
{ 
    /** 
    * @var integer $idtata 
    * 
    * @ORM\Column(name="idtata", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $idtata; 

    /** 
    * @var Toto 
    * 
    * @ORM\ManyToOne(targetEntity="Toto") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="idtoto", referencedColumnName="idtoto") 
    * }) 
    */ 
    private $idtoto; 



    /** 
    * Get idtata 
    * 
    * @return integer 
    */ 
    public function getIdtata() 
    { 
     return $this->idtata; 
    } 

    /** 
    * Set idtoto 
    * 
    * @param Creatis\SaisieBundle\Entity\Toto $idtoto 
    */ 
    public function setIdtoto(\Creatis\SaisieBundle\Entity\Toto $idtoto) 
    { 
     $this->idtoto = $idtoto; 
    } 

    /** 
    * Get idtoto 
    * 
    * @return Creatis\SaisieBundle\Entity\Toto 
    */ 
    public function getIdtoto() 
    { 
     return $this->idtoto; 
    } 
} 

なぜTotoクラスのOneToManyの関係が生成されていない(手動で入力しなければならない):

/** 
* @ORM\OneToMany(targetEntity="Tata", mappedBy="idToto") 
*/ 
private $tatas; 

コマンドラインに入れるオプションはありますか?

+2

あなたはすべてのドキュメントを読んだことがありますか?エンティティはどのように見えますか?あなたを助けるためには、より多くの情報が必要です。 – Flukey

+0

より正確には、クラス間の関係の名前付け方法を知る必要があります。 – greg0ire

+0

私は正確になるように投稿を編集しました – Yoot

答えて

1

leftJoin内では、Tataクラスで定義されているように、リレーション属性の名前を使用する必要があります。 2番目のパラメータは、文で使用できるキーのみを定義します。あなたの関係が正しければ、教義が自動的に加入ん:

class TataRepository extends EntityRepository{ 
    public function getRelation(){ 
    $qb = $this->createQueryBuilder('tata') 
     ->leftJoin('tata.idtoto', 'toto'); 
    return $qb->getQuery()->getResult(); 
    } 
} 

あなたは外部キーが、いくつかの他のフィールドに参加したくない場合は、マッチングを行うleftJoinにthridパラメータを追加する必要があり、 toto.field1 = tata.field2のようになります。

+0

左の結合物は実際の問題ではなかったので、私は再び投稿を編集しました – Yoot

+0

ああ、あなたは双方向関係が必要です。 – Sgoettschkes