我使用以下查询:
SELECT u.username, u.password, s.name, s.price
FROM AcmeBundle:User u
LEFT JOIN AcmeBundle:Shop s
WITH u.id = s.id;
显示我要分页的记录。问题在于分页需要简单的计数查询,并且不适用于这种选择。
Not all identifier properties can be found in the ResultSetMapping: username
因此,要进行分页,我将必须始终使用两个查询-上面一个查询显示记录,另一个查询计数,这两个查询都具有联接。它极大地降低了性能。
我使用knplabs分页器,symfony 2和ORM原则。
您能给我一些建议吗?
应该像
$dql = 'SELECT user
FROM AcmeBundle:User user
LEFT JOIN AcmeBundle:Shop shop
WITH user.id = shop.id';
$query = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query,
$this->get('request')->query->get('page', 1)/*page number*/,
10/*limit per page*/
);
return array(
'pagination' => $pagination,
);
整个对象'user'而不是attribute(user.username ..)应该在paginator ..中传递。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句