1

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 が配列なのですか?

4

1 に答える 1

3

priority.idORM はスカラー結果として取得する必要があるため、DQL で選択されたものがこの問題を引き起こしています。アクセスすると、フェッチ結合されたオブジェクト$task[0]が得られるはずですが、 を表すスカラーが得られます。 task$task['priority_id']priority.id

于 2013-02-27T20:39:59.497 に答える