1

特定のエンティティに関連付けられたアイテムのコレクションの選択された要素のみを返すことをタスクとするメソッドを作成しようとしています。

/**
 * @ORM\OneToMany(targetEntity="PlayerStats", mappedBy="summoner")
 * @ORM\OrderBy({"player_stat_summary_type" = "ASC"})
 */
protected $player_stats;

public function getPlayerStatsBySummaryType($summary_type)
{
    if ($this->player_stats->count() != 0) {
        $criteria = Criteria::create()
            ->where(Criteria::expr()->eq("player_stat_summary_type", $summary_type));

        return $this->player_stats->matching($criteria)->first();
    }

    return null;
}

しかし、エラーが発生します:

PHP Fatal error:  Cannot access protected property Ranking\CoreBundle\Entity\PlayerStats::$player_stat_summary_type in /Users/piotrkowalczuk/Sites/lolranking/vendor/doctrine/common/lib/Doctrine/Common/Collections/Expr/ClosureExpressionVisitor.php on line 53

これを修正する方法はありますか?

4

3 に答える 3

2

修理済み。そのはず:

    $criteria = Criteria::create()
        ->where(Criteria::expr()->eq("playerStatSummaryType", $summary_type));
于 2012-11-18T15:12:29.917 に答える
1

PlyerStatsエンティティにgetPlayerStatSummaryType()パブリックメソッドがあることを確認してください。これは、@ORM\OrderByアノテーションと(おそらく)内部のカスタム基準によって使用されていますgetPlayerStatsBySummaryType()

于 2012-11-18T11:13:43.493 に答える
0

クラスの$player_stat_summary_typeプロパティにゲッターを提供します。Ranking\CoreBundle\Entity\PlayerStats

于 2012-11-18T11:16:37.917 に答える