小编Lau*_*eld的帖子

学说分页

我遇到了Doctrine Paginator的问题.

在我的存储库中,我有一个检索特定数据集的函数.我使用querybuilder:

{myEntityRepository}->createQueryBuilder($alias)
Run Code Online (Sandbox Code Playgroud)

为了只选择特定字段,我使用以下内容:

if (count($selectFields) > 0) {
    $qb->resetDQLPart('select');
    foreach ($selectFields as $selectField) {
        $qb->addSelect($alias . '.' . $selectField);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我像这样检索整个集合时,这很好用:

$query = $qb->getQuery();
$data = $query->getResult(AbstractQuery::HYDRATE_ARRAY);
Run Code Online (Sandbox Code Playgroud)

但是当我使用paginator时失败了:

$paginator = new Paginator($qb, $fetchJoinCollection = false);
$total = $paginator->count(),
$data = $paginator->getQuery()->getResult(AbstractQuery::HYDRATE_ARRAY)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

并非所有标识符属性都可以在ResultSetMapping中找到:relationID
\ vendor\doctrine\orm\lib\Doctrine\ORM\Query\Exec\SingleSelectExecutor.php(38)

问题:当我只选择特定字段时,为什么分页器会失败?
我忽略了什么吗?或者我一起做错了吗?

pagination doctrine-orm zend-framework2

5
推荐指数
1
解决办法
1853
查看次数

标签 统计

doctrine-orm ×1

pagination ×1

zend-framework2 ×1