我遇到了Doctrine Paginator的问题。
在我的仓库中,我有一个函数来检索特定的数据集。 我使用querybuilder进行此操作:
为了仅选择特定的字段,我使用以下方法:
在我的仓库中,我有一个函数来检索特定的数据集。 我使用querybuilder进行此操作:
{myEntityRepository}->createQueryBuilder($alias)
为了仅选择特定的字段,我使用以下方法:
if (count($selectFields) > 0) {
$qb->resetDQLPart('select');
foreach ($selectFields as $selectField) {
$qb->addSelect($alias . '.' . $selectField);
}
}
当我像这样检索整个集时,它可以正常工作:
$query = $qb->getQuery();
$data = $query->getResult(AbstractQuery::HYDRATE_ARRAY);
但是当我使用分页器时它失败了:
$paginator = new Paginator($qb, $fetchJoinCollection = false);
$total = $paginator->count(),
$data = $paginator->getQuery()->getResult(AbstractQuery::HYDRATE_ARRAY)
我遇到了以下错误:
未在ResultSetMapping中找到所有标识符属性:relationID
\vendor\doctrine\orm\lib\Doctrine\ORM\Query\Exec\SingleSelectExecutor.php(38)
问题: 当我只选择特定字段时,分页器为什么会失败?
我是不是忽略了什么?还是我完全做错了?