How to limit size of result set in doctrine 2?
I开发者_StackOverflow中文版f i'm using the findBy method of the respository class, how can I limit the size of the result set?
In Doctrine 2.1 method EntityRepository#findBy() now accepts additional parameters for ordering, limit and offset.
see full list new features in doctrine 2.1 (404)
Relevant link to findBy and findOneBy
example:
public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
usage:
$product = $repository->findBy(
array('name' => 'foo'),
array('price' => 'ASC'),
$myLimit,
$myOffset
);
For Doctrine Query Language you have:
QueryBuilder::setMaxResults(integer $maxResults)
The findBy() method of the generic repository class doesn't support this.
I would write your own repository (as outlined here) and override findBy() to take additional parameters. Your new implementation could use the query builder, or plain-old-DQL to build up the proper query. (I'd use the querybuilder, as you can probably just pass the $critera param right into QueryBuilder::where())
精彩评论