2012-11-27 10 views
7

私は2つのエンティティ、つまり一致とチームを持っています。チームは1対多数のマッチを持つことができます。しかし、私のMatchエンティティconstは、同じエンティティTeamを参照する2つのフィールドのconstです。彼らは$ homeTeamと$ awayTeamです。 Team、$ matchesの同じフィールドを双方向関係としてどのように参照するのですか?Doctrine2マッピング:1つのフィールドにマッピングされた2つのフィールド(ManyToOne)

私の現在の非稼働のコードは以下の通りです:

マイマッチエンティティ:

/** 
* @ORM\Entity 
* @ORM\Table(name="match") 
**/ 
class Match { 

    /** 
    * @ORM\ManyToOne(targetEntity="Team", inversedBy="matches") 
    * @ORM\JoinColumn(name="home_team_id", referencedColumnName="id") 
    * **/ 
    protected $homeTeam; 

    /** 
    * @ORM\ManyToOne(targetEntity="Team", inversedBy="matches") 
    * @ORM\JoinColumn(name="away_team_id", referencedColumnName="id") 
    * **/ 
    protected $awayTeam; 

マイチームエンティティ(私は推測だろう間違った?):

/** 
* @ORM\Entity 
* @ORM\Table(name="team") 
* **/ 
class Team { 

    /** @ORM\OneToMany(targetEntity="Match", mappedBy="homeTeam", mappedBy="awayTeam") **/ 
    protected $matches; 
+0

私は同じ問題を抱えているが、あなたはとOR条件に参加する必要があります。homeTeam OR AwayTeam、私の場合、私は参加する必要があるとして、AND条件。 – Dmitriy

答えて

7

Doctrine's official docsを探索した後:複数の列を追加することはできません。

    1. getAllMatchesForTeam($team)
    2. Teamに適切な関係$homeMatches$awayMatches +方法getAllMatches()を定義し、そこ$homeMatches$awayMatchesの労働組合の結果
    Matchのカスタムリポジトリを作成し、メソッドを定義します。その代わりに、あなたは間を選択することができます

    続きを読む:

    1. https://stackoverflow.com/questions/13922047/symfony2-doctrine2-how-to-implement-methods-on-entity-to-retrieve-related-ent
    2. Custom repository class in Symfony2
    3. Fetching data through a custom repository in a Twig extension
    4. How can I access a service outside of a controller with Symfony2?
  • +0

    ドミトリー – Blyde

    関連する問題