2012-11-27 18 views
7

Ich habe 2 Entitäten, nämlich Match und Team. Ein Team kann eins zu viele Matches haben. Meine Match-Entität enthält jedoch 2 Felder, die auf dieselbe Entität, Team, verweisen. Sie sind $ homeTeam und $ awayTeam. Wie referenziere ich dasselbe Feld in Team, $ Übereinstimmungen, als eine bidirektionale Beziehung?Doctrine2 Mapping: 2 Felder zu einem Feld zugeordnet (ManyToOne)

Mein aktueller nicht funktionierenden Code ist unten:

Mein Spiel Entity:

/** 
* @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; 

My Team Entity (falsche Ich würde vermuten?):

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

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

Ich habe das gleiche Problem, aber Sie müssen mit OR-Bedingung verbinden: Hometeam OR AwayTeam, wie in meinem Fall ich mit AND-Bedingung müssen sich registrieren . – Dmitriy

Antwort

7

Nach Doctrine's official docs zu entdecken: Sie können nicht mehrere mappedBy Spalten hinzufügen. Statt dessen können Sie wählen zwischen:

  1. Erstellen eines benutzerdefinierten Repository für Match und definieren Methode getAllMatchesForTeam($team)
  2. Define entsprechende Beziehungen $homeMatches und $awayMatches + Methode getAllMatches() auf Team und Vereinigung Ergebnisse $homeMatches und $awayMatches dort

Lesen Sie hier mehr:

  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

Danke Dmitriy – Blyde

Verwandte Themen