TYPO3 6.2流体分页无法正常工作

Reshma Reghunatha Panicker

我的TYPO3 6.2(从TYPO3 4.5升级)显示了所有项目,而不是5个项目。

我的存储库方法:

public function getRandomLocation($iLimit)
{
    $query = $this->createQuery();
    $result = $query->statement("Select * FROM      tx_sfel_domain_model_ttblocationsproduktegruppen WHERE hidden = 0 AND deleted = 0 AND logo != '' ORDER BY uid LIMIT 0, ".$iLimit." ");
    return $result->execute(); 
}

我的控制器代码:

$aSResultsLocations = $this->tTBLocationsProdukteGruppenRepository->getRandomLocation($iLimit);
$this->view->assign('aSResultsLocations', $aSResultsLocations);

我的模板:

    <f:widget.paginate objects="{aSResultsLocations}" as="aSResultsLocationss" configuration="{itemsPerPage: 5, insertAbove: 1 insertBelow: 1}"> 

                <f:for each="{aSResultsLocationss}" as="aSResultsLocation">
                     .................

                     //Getting all the items instead of 5 items.

                </f:for>
    </f:widget.paginate> 

TYPO3\CMS\Fluid\ViewHelpers\Widget\Controller\PaginateController.php indexaction()我得到以下结果。

代码 :

$itemsPerPage = (int)$this->configuration['itemsPerPage'];

$query = $this->objects->getQuery();
$query->setLimit($itemsPerPage);
if ($this->currentPage > 1) {
     $query->setOffset((int)($itemsPerPage * ($this->currentPage - 1)));
}
$modifiedObjects = $query->execute();

我从这里得到的值是:

$ itemsPerPage:5

$query : Select * FROM tx_sfel_domain_model_ttblocationsproduktegruppen WHERE hidden = 0 AND deleted = 0 AND (jahr = '13' OR jahr = '14' OR jahr = '15') AND logo != '' ORDER BY uid LIMIT 0, 26

$ modifiedObjects计数= 26

但是我需要将'$ modifiedObjects count'设置为5。

我认为以下不适用于我的查询对象,

$query->setLimit($itemsPerPage);
$query->setOffset((int)($itemsPerPage * ($this->currentPage - 1)));

我认为此问题与我在分页中使用的查询对象有关。如何为TYPO3 6.2流体分页创建查询对象?

请帮我。

Reshma Reghunatha Panicker

为了解决上述问题,我以extbase查询格式重建了查询。在typo3 6.2.x中,分页不适用于查询语句,因此我们需要将其转换为extbase查询格式。

我重建的查询格式是

$constraints = array(); 
$subConstraints = array(); 
$query = $this->createQuery(); 

foreach($PublicationYears as $year) 
     $subConstraints[] = $query->equals('jahr', $year); 

$constraints[] = $query->logicalOr($subConstraints); 

$constraints[] = $query->logicalNot( $query->equals('logo', '') ); 

$query->matching($query->logicalAnd($constraints)); 

$query->setLimit((integer)$iLimit); 

$Result = $query->execute();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章