在Symfony2中的实体getter方法中选择相关实体

时间:2014-12-29 15:41:46

标签: php symfony doctrine repository entity

我如何在Symfony2中创建自定义查找器,我可以从对象上下文(如getter方法)而不是存储库上下文调用。这是我在EntityRepository类中的查询:

public function getUpVotes($trip_id)
{
    return count($this->getEntityManager()
        ->createQueryBuilder()
        ->select('t')
        ->from('VputiTripBundle:Trip', 't')
        ->join('t.ratings', 'r')
        ->where('r.trip = :tid')
        ->andWhere('r.up = :up')
        ->setParameters(['tid' => $trip_id, 'up' => 1])
        ->getQuery()
        ->getResult());
}

这样做的目的是,我将能够调用此$ model-> getUpVotes()而不是调用实体存储库并手动传递参数。

1 个答案:

答案 0 :(得分:3)

如果您设置了关联,则可以使用带过滤器的get。

public function getUpVotes()
{
    return $this->ratings->filter(
        function (RatingInterface $rating) {
            return 1 === $rating->getUp();
        }
    );
}