2010-12-16 134 views
1

假設我們有兩個模型:PostViewsCount。關係類型是1:1。學說:加入一對一的關係

現在我想找回過去的5個員額其觀點統計:

$posts = PostTable::getInstance()->createQuery('p') 
    ->leftJoin('p.ViewsCount') // relation name is "ViewsCount" 
    ->orderBy('p.created_at DESC') 
    ->limit(5) 
    ->execute(); 

但是,有沒有運氣。它會引發錯誤。如果我刪除加入 - 一切都很好。

所以,我的問題是 - 如何在Doctrine中自動加入/檢索一對一的關係以避免大量的額外查詢?

回答

1

語法錯誤。您還需要告訴您想要檢索ViewCount字段的原則:

$posts = PostTable::getInstance()->createQuery('p') 
    ->select('p.*, vc.*') 
    ->leftJoin('p.ViewsCount vc') 
    ->orderBy('p.created_at DESC') 
    ->limit(5) 
    ->execute(); 
+0

謝謝,但它沒有幫助。現在我得到另一個有關水合作用的錯誤 – Darmen 2010-12-25 06:35:37

+0

知道錯誤信息是很有用的。 – 2010-12-25 08:32:24

+0

沒關係,謝謝! – Darmen 2011-02-07 09:45:55

0

看來您應該正確定義關係。 對於每個模型定義與類型鍵的關係(類型:一個)。

+0

顯然,我是這麼做的。 :) – Darmen 2010-12-25 06:36:41