【发布时间】:2015-06-27 18:03:45
【问题描述】:
我有两个实体,Carros 和 Msg,我正在寻找具有 Msg 消息的 Carros
$query = $entityManager->createQuery("
SELECT u
FROM Auto\Entity\Carros u
JOIN Auto\Entity\Msg m WITH m.idautoad=u.idcarros
WHERE u.identidade='".$emailidentidade."'
ORDER BY u.datadoanuncio DESC
");
我正在使用分页器:
// Create the paginator itself
$paginator = new Paginator(
new DoctrinePaginator(new ORMPaginator($query))
);
我收到以下错误,我有 zend 2.3.9 和教义 2.4
Arquivo: C:\websites\auto\vendor\zendframework\zendframework\library\Zend\Paginator\Paginator.php:637
Mensagem:生成迭代器时出错
C:\websites\auto\vendor\doctrine\orm\lib\Doctrine\ORM\Tools\Pagination\WhereInWalker.php:85
消息:
无法统计选择两个FROM组件的查询,无法区分
当我尝试这样做时它会产生错误:
foreach ($paginator as $carro)
{}
当得到这样的结果时,错误消失了:
$fi = $query->getResult();
然后
$paginator = new \Zend\Paginator\Paginator(new
\Zend\Paginator\Adapter\ArrayAdapter($fi)
);
【问题讨论】:
-
Carros 和 Msg 之间是否有 ManyToOne 关系?如果这样做,请检查:docs.doctrine-project.org/projects/doctrine-orm/en/latest/… 最后使用此双向映射,您无需在查询中进行连接,即可解决您的问题。
标签: php doctrine-orm pagination zend-framework2 zend-paginator