0

symfony 2.2.1でknp_paginatorの最後のバージョンを使用しようとしています

私のクエリは次のとおりです。

$qb = $em->getRepository('TemplateDefaultBundle:Member')->createQueryBuilder('m');

$query = $qb->select('m, p.id')
            ->join('m.photos', 'p' )
            ->where('m.status = 1')
            ->where('m.game = :game')
            ->andWhere('m.status = 1')
            ->setParameter('game', $this->game);

this->game良いオブジェクトはどこですか。

できます:

$query->getQuery()->execute();

そして、それは機能しません:

$pagination->paginate( $query->getQuery(), $this->get('request')->query->get('page', 1), 6 );

そして、私が持っているプロファイラーを与えます

WHERE m0_.game_id = 'Object(Template\\DefaultBundle\\Entity\\Game)' AND m0_.status = 1 

私のcomposer.json:

    "symfony/symfony": "2.2.*",...
    "knplabs/knp-paginator-bundle": "2.3",
4

2 に答える 2

1

gameクエリでは、オブジェクトの代わりにオブジェクトを渡していますid
必要な結果を得るには、 に置き換えsetParameter('game', $this->game)ますsetParameter('game', $this->game->getId())

したがって、クエリは次のようになります。

$query = $qb->select('m, p.id')
        ->join('m.photos', 'p' )
        ->where('m.status = 1')
        ->where('m.game = :game')
        ->andWhere('m.status = 1')
        ->setParameter('game', $this->game->getId());
于 2013-03-19T18:31:28.723 に答える
0

->getId() の回避策を回避するために、現在、次の paginator パッケージの組み合わせを使用することが可能です:

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