使用Doctrine和Symfony检索相关对象

时间:2010-07-16 16:51:57

标签: symfony1 doctrine symfony-1.4 doctrine-query

我搜索了很长时间,但我没有设法在一个查询中检索两个相关对象。我正在使用DoctrineSymfony(默认使用Doctrine)。

这是我的schema.yml的一部分:

Member:
  columns:
    ...some fields...

Report:
  columns:
    member:       { type: integer, notnull: true }
    ...some fields...
  relations:
    Member:  { onDelete: CASCADE, local: member, foreign: id, foreignAlias: Members }

这是我的“基本”请求,只能检索报表对象:

public function getReports($place,$max = 5) {
    $q = Doctrine_Query::create()
            ->from('Report sr')
            ->where('sr.place = ?',$place)
            ->limit($max)
            ->orderBy('sr.date DESC');
    return $q->execute();
}

某个地方的成员已经提交了一份报告。我需要检索成员对象以显示它的字段,但我真的不知道该怎么做。

如果您有线索或方法可以做到这一点,我将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

$q = Doctrine_Query::create()
->from('Report sr')
->innerJoin('sr.Members m');

就是这样,非常简单:)