在extbase中的控制器方法中更改查询

时间:2013-10-22 09:02:08

标签: typo3 extbase

我使用扩展构建器为我的扩展生成基础。但现在我想修改listAction()方法的输出:

public function listAction() {
    $rooms = $this->roomRepository->findAll();
            $this->view->assign('rooms', $rooms);
}

是否可以添加where语句以从表“Rooms”中不接收所有行?

1 个答案:

答案 0 :(得分:1)

您可以将自定义方法添加到存储库中,以便像the blog post

中所述高级查询数据库

样品:

public function findRecentByBlog(Tx_BlogExample_Domain_Model_Blog $blog, $limit = 5) {
    $query = $this->createQuery();
    return $query->matching($query->equals('blog', $blog))
        ->setOrderings(array('date' => Tx_Extbase_Persistence_QueryInterface::ORDER_DESCENDING))
        ->setLimit((integer)$limit)
        ->execute();
}

所以你可以在控制器中使用它,如:

$posts = $this->postRepository->findRecentByBlog($blog, 3);