Если я использую метод findBy класса репозитория, как я могу ограничить размер набора результатов?
В Doctrine 2.1 метод EntityRepository # findBy () теперь принимает дополнительные параметры для упорядочения, ограничения и смещения.
см. Полный список новых функций в доктрине 2.1 (404) Соответствующая ссылка для findBy и findOneBy
пример:
public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
использование:
$product = $repository->findBy( array('name' => 'foo'), array('price' => 'ASC'), $myLimit, $myOffset );
Для Doctrine Query Language у вас есть:
QueryBuilder::setMaxResults(integer $maxResults)
Метод findBy () универсального класса репозитория не поддерживает это.
Я бы написал свой собственный репозиторий (как указано здесь 1004 *) и переопределил findBy (), чтобы получить дополнительные параметры. Ваша новая реализация может использовать построитель запросов или обычный старый DQL для создания правильного запроса. (Я бы использовал построитель запросов, так как вы можете просто передать параметр $ critera прямо в QueryBuilder :: where () )