我尝试使用最后版本af knp_paginator和symfony 2.2.1
我的查询是:
$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",
答案 0 :(得分: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());
答案 1 :(得分:0)
为避免 - > getId()解决方法,目前可以使用下一个paginator包组合:
"knplabs/knp-components": "1.2.1",
"knplabs/knp-paginator-bundle": "~2.3"