从JOIN访问与Doctrine相关的字段

时间:2011-02-21 22:20:49

标签: php symfony1 doctrine

我正在尝试从我的数据库中使用带有连接的doctrine来提取用户列表。我的模型中有以下功能:

public function getAttendees() {
    $q = Doctrine_Query::create()
        ->select('a.id, a.name, a.url, m.id')
        ->from('Attendees a')
        ->leftJoin('a.Meetings m WITH m.Meeting_Slot_ID = ?', $this->getId());

    return $q->execute();
}

我已经检查了这个查询生成的SQL,它正在掠夺我想要的所有数据。我现在正在尝试访问检索到的数据。我有以下工作:

foreach($object0>getAttendees() as $attendee){
    echo $attendee->getName();
}

但是,我无法弄清楚如何访问m.id字段。

2 个答案:

答案 0 :(得分:1)

我认为你可以这样做:

$attendee->getMeetings()->getId()

您必须使用schema.yml中定义的别名(如果您使用的是symfony) 通常,Doctrine使用这种方式将相关模型链接在一起: model1-> model2-> model3 ...-> getModel2() - > getModel3() - > getModel3Field()

答案 1 :(得分:1)

$attendee->getMeeting()->getId();或者取决于您如何命名关系/属性。