存储库查询 - > setLimit(4)在某些情况下不返回任何结果

时间:2017-01-16 15:29:01

标签: typo3 extbase typo3-7.6.x

在我的Repository存储区中,我有以下代码:

function findByTyp($typ, $not, $gender) {
         $query = $this->createQuery();
         return $query->matching(
                        $query->logicalAnd(
                            $query->equals('pid', 96),
                            $query->equals('typ', $typ),
                            $query->logicalNot($query->equals('uid', $not)),
                            $query->equals('gender', $gender)
                        )
                    )
                    ->setOrderings (Array('sort' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING))
                    ->setLimit(4)
                    ->execute();
    }

现在在特定情况下,这应该返回一个包含1个项目的查询。但不知何故,它不会返回任何项目。但是当我删除->setLimit(4)时,它会返回正确的项目。

现在这对我来说没什么意义。和其他情况一样,它应该如何工作。那么当没有超过4个项目时,->setLimit(4)如何从查询中删除项目(在这种情况下只有1个)

1 个答案:

答案 0 :(得分:-1)

到目前为止我找不到答案所以这是我的

解决方法:

我在存储库中不使用->setLimit(4),但只使用模板中的前4项:

<f:for each="{collection}" as="collectionItem" iteration="collectionCount">
        <f:if condition="{collectionCount.index}<4">
              ....
        </f:if>
    </f:for>