0

knp paginator をセットアップしています。コンポーザーは "knplabs/knp-paginator-bundle": "2.3.*" に設定されていますが、Query オブジェクトでは機能しません。

これが私のクエリです:

public function getCommentariesByUser(User $user) {
        $qb = $this->createQueryBuilder('c');
        $qb->innerJoin('c.item', 'i');

        $qb->andWhere($qb->expr()->eq('i.user', ':user'))
               ->setParameter(':user', $user);

        $qb->andWhere($qb->expr()->neq('c.user', ':user1'))
               ->setParameter(':user1', $user);

       return $qb->getQuery();
}

私の行動でそれをどのように呼んでいるか:

public function commentariesAction($page) {
    $user = $this->getUser();
    $commentaryRepository = $this->getDoctrine()->getRepository('My\MyBundle\Entity\Commentary');
    $query  = $commentaryRepository->getCommentariesByUser($user);

    $paginator  = $this->get('knp_paginator');
    $pagination = $paginator->paginate(
        $query,
        $page/*page number*/,
        15/*limit per page*/
    );

    return array('pagination' => $pagination);
}

結果は表示されませんが、 $query->execute() を配置すると機能します。どうしたの?

4

1 に答える 1

0

現在、上記のコードが機能するために、次の paginator パッケージの組み合わせを使用することが可能です。

"knplabs/knp-components": "1.2.1",
"knplabs/knp-paginator-bundle": "~2.3"
于 2013-07-25T21:51:32.970 に答える