как я могу создать пользовательский искатель в 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 () вместо вызова сущностного репозитория и передавать параметры вручную.
Если у вас установлена ассоциация, вы можете использовать метод get с фильтром.
public function getUpVotes()
{
return $this->ratings->filter(
function (RatingInterface $rating) {
return 1 === $rating->getUp();
}
);
}
Других решений пока нет …