Symfony Doctrine Paginator迭代是一个由1个对象组成的数组

Symfony Doctrine Paginator迭代是一个由1个对象组成的数组,symfony,doctrine-orm,doctrine,pagination,dql,Symfony,Doctrine Orm,Doctrine,Pagination,Dql,我试图使用doctrines Paginate类来获取一些任务 $qb = $this->getEntityManager() ->createQueryBuilder() ->select('DISTINCT task, priority, company, invoice') ->addSelect('priority.id as priority_id') ->fr

我试图使用doctrines Paginate类来获取一些任务

$qb = $this->getEntityManager()
            ->createQueryBuilder()
            ->select('DISTINCT task, priority, company, invoice')
            ->addSelect('priority.id as priority_id')
            ->from('TekniqSD4Bundle:task', 'task')
            ->leftJoin('task.slips', 'slips')
            ->leftJoin('task.comments', 'comments')
            ->leftJoin('task.files', 'files')
            ->leftJoin('task.steps', 'steps')
            ->leftJoin('task.status', 'status')
            ->join('task.invoice', 'invoice')
            ->join('task.priority', 'priority')
            ->join('invoice.company', 'company');

$query = $qb->getQuery()
            ->setMaxResults(2)  
            ->setFirstResult($offset);
$paginator = new Paginator($query, true);
foreach($paginator as $task){
    var_dump($task); //this spits out an array containing 1 task
}

我的问题是,$task为什么是数组?

DQL中所选的
优先级.id
导致了这个问题,因为ORM必须将其作为标量结果检索。访问
$task[0]
应该为您提供
task
对象,而
$task['priority\u id']
为您提供表示
priority.id
的标量