2012-08-10 77 views
0

以下是我在原則中查詢的兩個表的模式。無法在Doctrine中訪問已連接的表列

我的架構中有兩個表叫做分類和課程,它們有多對一的關係[應該是一對一的,但這就是它的編碼方式]。我的查詢是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

你能粘貼你的'schema.yml'? – j0k 2012-08-10 07:38:54

回答

2

我看不到你的模式。

我想分類學與課程有一對多的關係(分類是一個)。

所以一個分類對象可以有很多的經驗教訓,

$TaxonomyResult->getLesson()應該返回課程對象(Doctrine_Collection),而不是一個課程對象。

你可以得到你的課程對象數組一樣:

$lessons = $TaxonomyResult->getLesson(); 

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

這就是我的想法,但我想看到他的schema.yml第一個 – j0k 2012-08-10 10:10:13

+0

應該是技術上正確的...我錯過了是它是一對多關係並返回一個集合,因此需要一個foreach循環遍歷課程對象並訪問特定的方法 – user1020069 2012-08-10 18:31:28