2017-03-03 65 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

大,工作就像一個魅力。非常感謝! –