2012-11-27 11 views
7

मेरे पास 2 इकाइयां हैं, अर्थात् मिलान और टीम। एक टीम के पास कई मिलान हो सकते हैं। हालांकि, मेरी मिलान इकाई 2 फ़ील्ड का है जो एक ही इकाई, टीम का संदर्भ देती है। वे $ homeTeam और $ दूर टीम हैं। मैं बिडरेक्शनल रिलेशनशिप के रूप में टीम, $ मैचों में उसी फ़ील्ड का संदर्भ कैसे दूं?सिद्धांत 2 मैपिंग: 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 या AwayTeam, मेरे मामले में के रूप में मैं के साथ AND शर्त शामिल होने की आवश्यकता । – Dmitriy

उत्तर

7

Doctrine's official docs की खोज के बाद: आप एकाधिक mappedBy कॉलम नहीं जोड़ सकते हैं। इस के बजाय, आप चुन सकते हैं के बीच:

  1. विधि getAllMatchesForTeam($team)
  2. Match के लिए एक कस्टम भंडार बनाएँ और परिभाषित उचित संबंधों $homeMatches और $awayMatches + Team पर विधि getAllMatches() और $homeMatches के मिलन के परिणाम और वहाँ $awayMatches
निर्धारित

यहां और पढ़ें:

  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

संबंधित मुद्दे