【发布时间】:2016-02-15 14:44:32
【问题描述】:
我的存储库中有一个关于教义和自定义查询的问题。我在一个网站上工作,包括高级帐户。 例如,使用这些帐户,您可以不受列表成员结果的限制。如果您没有高级帐户,结果列表将限制为 10 个结果。
所以这是我的自定义查询:
/**
* Avec cette fonction on obtient la liste de tous les membres
* en utilisant une pagination
* @param int $page
* @param $limitResultPremium
* @return Paginator
*/
public function getAllUser($page = 1,$maxResultPerPage = 6,$limitResultPremium = 10) {
$query = $this->createQueryBuilder('u')
->select('u')
->where('u.enabled = true')
->andWhere('u.dCreated <= '. "'".date("Y-m-d H:i:s", time())."'")
->orderBy('u.dCreated')
->setMaxResults($limitResultPremium)
;
$query->setFirstResult(($page-1) * $maxResultPerPage)
->setMaxResults($maxResultPerPage);
return new Paginator($query);
}
如您所见,我使用 paginator 对结果页进行分页。但是我想使用函数setMaxResults(),它不起作用。我也有与我的查询相对应的最大结果(在我的情况下,我得到 11 个结果,我只想得到 10 个......)
如果有人可以帮助我...对不起我的英语!提前致谢
【问题讨论】:
-
$limitResultPremium应该做什么? -
$limitResultPremium 如果帐户不是高级帐户,则应该通过限制值
-
所以如果当前用户有一个高级帐户,你只想显示10行,否则你允许分页并列出所有用户,对吗?在此功能中无法确定用户是否拥有高级帐户。
-
是的,你是对的。我在调用此函数之前进行了此验证,并在 $limitPremium 变量中输入了一个值
标签: php symfony doctrine-orm