开发者

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())

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜