如何使用 zend framwork 2 对原则 2 中的本机查询进行分页



这是我尝试过的:

$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()$queryDoctrine\ORM\Query 的一个实例,而 $qb-result() 返回一个结果数组。

分页器需要查询,而不是结果!

最新更新