这是我尝试过的:
$entityManager = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default');
$rsm = new DoctrineORMQueryResultSetMapping;
$rsm->addEntityResult('SchoolAdminEntityMaptechclass', 'Mt');
$rsm->addFieldResult('Mt', 'map_tech_class_id', 'mapTechClassID');
$rsm->addFieldResult('Mt', 'map_tech_id', 'mapTechID');
$rsm->addEntityResult('SchoolAdminEntityTeacher', 'Th');
$rsm->addFieldResult('Th', 'th_id', 'th_id');
$rsm->addFieldResult('Th', 'th_first_name', 'th_first_name');
$rsm->addFieldResult('Th', 'th_last_name', 'th_last_name');
$rsm->addEntityResult('SchoolAdminEntityClasses', 'Cs');
$Q = "SELECT Mt.map_tech_class_id , Mt.map_tech_id ,
Th.th_id,
Th.th_first_name,
Th.th_last_name,
Cs.class_name
FROM maptechclass Mt
LEFT JOIN teacher Th
ON Mt.map_tech_id=Th.th_teacher_id
LEFT JOIN classes Cs
ON Mt.map_class_id=Cs.class_id
WHERE Mt.map_sch_id=49";
$query = $entityManager->createNativeQuery($Q, $rsm);
$auctions = $query->getResult();
return new ViewModel(array('paginator' => $auctions));
但是我收到以下错误:
可捕获的致命错误:参数 1 传递给 Doctrine\ORM\Tools\Pagination\Paginator::cloneQuery() 必须是 Doctrine\ORM\Query 的实例,数组给定,在第 122 行的 D:\xampp\htdocs\deltaspiral\vendor\doctrine\orm\lib\Doctrine\ORM\Tools\Pagination\Paginator.php 中定义,并在 D:\xampp\htdocs\deltaspiral\vendor\doctrine\orm\lib\Doctrine\ORM\Tools\Pagination\Paginator.php第 205 行定义
返回$query
而不是返回$qb->result()
。 $query
是 Doctrine\ORM\Query 的一个实例,而 $qb-result()
返回一个结果数组。
分页器需要查询,而不是结果!