0

我尝试在 symfony 2.2.1 中使用最新版本的 af 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 

我的作曲家.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() 目前的解决方法,可以使用分页器包的下一个组合:

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