9

1対多の関連付け(追加のフィールドを持つ多対多)を持つエンティティがあります。

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

このクラスには、すべての作成者向けの自動ゲッターがあります:getGamePlayers()

これにフィルターを追加したいので、最も効率的な方法で、関連する詳細についてのみデータベースにクエリを実行します。

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

(リポジトリを使用せずに)エンティティ内からそのようなゲッターを実現するための最良の方法は何ですか?

どうもありがとうございます!

4

1 に答える 1

5

Doctrine\Common\Collections\Criteriaを使用して関連するコレクションをフィルタリングする別のメソッドをエンティティに作成してみてください。詳細については、このリンクを参照してください。

于 2012-11-08T15:46:30.667 に答える