无法访问Doctrine中的联接表列

时间:2012-08-10 06:16:53

标签: symfony1 doctrine symfony-1.4 doctrine-1.2

以下是我在学说中查询的两个表的模式。

我的架构中有两个表,分类和课程,它们有多对一的关系[应该是一对一的,但这就是它的编码方式]。我的查询以TaxonomyTable.class.php编码,如下所示:

 $this->createQuery('t.*, l.lid')
      ->innerJoin('t.Lesson l')
      ->where('t.section = ?','specific_section');

查询按预期执行,挑战实际上是访问课程盖子。 假设查询被执行并存储在变量$TaxonomyResults中; 从之前的帖子中,我了解可以这样做:

foreach($TaxonomyResults as $TaxonomyResult)
{
   echo $TaxonomyResult->getLesson()->getLid();
}

但简单地说,这对我不起作用,我不知道为什么。在我的屏幕上呈现的错误是:

  

'Doctrine_Collection'没有方法'getLid'。

你认为我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

我看不到您的架构。

我猜分类学与课程有一对多的关系(分类学就是一个)。

因此,Taxonomy对象可以有很多课程,

$TaxonomyResult->getLesson()应该返回Lesson对象(Doctrine_Collection),而不是Lesson对象。

您可以像使用数组一样获取课程对象:

$lessons = $TaxonomyResult->getLesson();

echo $lessons[0]->getLid();