2017-03-03 41 views
1

如何只显示特定uid范围内的记录?假设我只想渲染其使用的记录是例如高于100和低于200TYPO3 Extbase - 仅查询特定uid范围内的记录

/** 
* action list 
* 
* @return void 
*/ 
public function listAction() { 

$this->view->assign('records', $this->testRepository->findAll()); 

} 

我需要使用MathUtility和它的isIntegerInRange ......但如何?

回答

3

在存储库中使用您自己的函数。

控制器

/** 
* action list 
* 
* @param integer $minUid 
* @param integer $maxUid 
* @return void 
*/ 
public function listAction() { 

    $this->view->assign('records', $this->testRepository->findUidRange($minUid,$maxUid)); 

} 

/** 
* Find records filtered by uid from to 
* 
* @param integer $minUid 
* @param integer $maxUid 
* @return \TYPO3\CMS\Extbase\Persistence\QueryResultInterface|array The query result 
*/ 
public function findUidRange($minUid = NULL, $maxUid = NULL) { 
    $query = $this->createQuery(); 
    return $query->matching(
      $query->logicalAnd(
        $query->greaterThan('uid', $minUid), 
        $query->lessThan('uid', $maxUid), 
        $query->equals('deleted', 0) 
      ))->execute(); 
} 
+0

大,工作就像一个魅力。非常感谢! –