【问题标题】:Where condition in Doctrine and Zend Framework 2 PaginationDoctrine and Zend Framework 2 Pagination 中的条件
【发布时间】:2014-09-21 19:45:21
【问题描述】:

我无法创建使用 Doctrine 和 Zend 框架 2 分页的 where 条件。 我的代码如下。

public function indexAction(){
    $em = $this->getEntityManager();
    $repository = $em->getRepository('Catalog\Entity\Category');
    $queryBuilder = $repository->createQueryBuilder('Category');
    $adapter = new DoctrinePaginator(new ORMPaginator($queryBuilder));

    $paginator = new Paginator($adapter);
    $paginator->setDefaultItemCountPerPage(9);

    $page = (int)$this->params()->fromQuery('page');
    if($page) $paginator->setCurrentPageNumber($page);
    $view = new ViewModel(
        array('paginator' => $paginator)
    );
    return $view;
}

我想获取“已启用”列值为 1 的类别。

我得到的另一种方法是创建 DQL 查询,但我没有得到 zend 框架 2 分页的好处。

$repository->createQueryBuilder('Category')->where(array('enabled' => 1));

我想使用我的顶级代码方式,因为它可以帮助我充分利用 zend 框架 2 分页,但我如何在其中指定 where 条件?

【问题讨论】:

    标签: php zend-framework doctrine-orm pagination zend-framework2


    【解决方案1】:

    我使用 Doctrine 的 QueryBuilder 解决了这个问题。找到下面的代码来添加条件以及 Zend Framework 2 分页。

    public function indexAction(){
        $em = $this->getEntityManager();
        $repository = $em->getRepository('Catalog\Entity\Category');
        $queryBuilder = $repository->createQueryBuilder('category')
            ->where('category.enabled = 1')
            ->orderBy('category.sortOrder', 'ASC');
        $adapter = new DoctrinePaginator(new ORMPaginator($queryBuilder));
    
        $paginator = new Paginator($adapter);
        $paginator->setDefaultItemCountPerPage(9);
    
        $page = (int)$this->params()->fromQuery('page');
        if($page) $paginator->setCurrentPageNumber($page);
        $view = new ViewModel(
            array('paginator' => $paginator)
        );
        return $view;
    }
    

    【讨论】:

    • 哦,兄弟,你拯救了我的一天。我欠你啤酒。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多