以下是我在学说中查询的两个表的模式。
我的架构中有两个表,分类和课程,它们有多对一的关系[应该是一对一的,但这就是它的编码方式]。我的查询以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'。
你认为我在这里做错了什么?
答案 0 :(得分:2)
我看不到您的架构。
我猜分类学与课程有一对多的关系(分类学就是一个)。
因此,Taxonomy对象可以有很多课程,
和$TaxonomyResult->getLesson()
应该返回Lesson对象(Doctrine_Collection),而不是Lesson对象。
您可以像使用数组一样获取课程对象:
$lessons = $TaxonomyResult->getLesson();
echo $lessons[0]->getLid();