2012-09-24 14 views
6

Mam podmiot, który ma powiązania jeden-do-wielu (wiele-do-wielu z dodatkowych pól):jak filtrować gettera w encji doctrine2?

class Game { 
    /** 
    /* @OneToMany(targetEntity="GamePlayer", mappedBy="game", cascade={"persist"}) 
    /* @JoinColumn(name="id", referencedColumnName="game_id", onDelete="cascade") 
    */ 
    private $gamePlayer; 
} 

Klasa został zautomatyzowany getter dla wszystkich autorów: getGamePlayers()

Chciałbym dodać filtr do niego, więc byłoby zapytanie do bazy danych tylko do odpowiednich informacji w najbardziej efektywny sposób:

public function getGamePlayersWithScoreHigherThan($score){ 
    //what to write here? (return array) 
} 

co jest najlepszym sposobem na osiągnięcie takiego getter od wewnątrz jednostki (nie używając repozytorium)?

Dziękuję bardzo!

+0

W jaki sposób generowany jest getter? Co powstrzymuje cię od dodania własnego niestandardowego gettera do encji? – Asciiom

+0

generowany jest z cliphpp doctrine.php orm: generate-entities. mogę dodać gettera, ale nie mam pojęcia, co napisać w środku, aby zmienić zapytanie. – Koby

+1

Proszę zaksięgować cały podmiot –

Odpowiedz

3

Możesz spróbować utworzyć osobną metodę na swoim podmiocie, która używa Doctrine \ Common \ Collections \ Criteria do filtrowania powiązanej kolekcji. Zobacz this link fro szczegóły