php 如何在原则2中限制结果集的大小?

5ktev3wc  于 2023-03-21  发布在  PHP
关注(0)|答案(3)|浏览(115)

如果我使用的是repository类的findBy方法,我如何限制结果集的大小?

t2a7ltrp

t2a7ltrp1#

在Doctrine 2.1中,方法EntityRepository#findBy()现在接受用于排序、限制和偏移的附加参数。
文件:使用对象-按简单条件查询
示例:

public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)

用法:

$myLimit = 30;
$myOffset = 20;

$product = $repository->findBy(
    array('name' => 'foo'),
    array('price' => 'ASC'),
    $myLimit,
    $myOffset
);
ylamdve6

ylamdve62#

对于Doctrine Query Language,您有:

QueryBuilder::setMaxResults(integer $maxResults)
vatpfxk5

vatpfxk53#

通用存储库类的findBy()方法不支持此操作。
我将编写您自己的存储库(如此处所述)并覆盖findBy()以获取额外的参数。您的新实现可以使用查询构建器或普通的旧DQL来构建适当的查询。(我将使用querybuilder,因为您可能只需将$critera参数直接传递到QueryBuilder::where())

相关问题