2010-12-16 25 views
1

PostViewsCountという2つのモデルがあるとします。関係タイプは1:1です。運がない、Doctrine:1対1の関係を結ぶ

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

しかし:

今、私は自分の意見の統計との最後の5つのポストを取得したいです。エラーが発生します。私が参加を取り除く - すべてが大丈夫です。

私の質問は - です。追加のクエリを避けるためにDoctrineで1対1の関係を自動的に結合/取得するにはどうすればいいですか?

答えて

1

構文に誤りがあります。また、doctrineにViewCountフィールドを取得するように指示する必要があります。

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

ありがとうございましたが、役に立たなかったです。今度は水分補給に関する別のエラーが出る – Darmen

+0

何がエラーメッセージであるか知ることは有益でしょう。 –

+0

大丈夫です、ありがとう! – Darmen

0

関係を適切に定義する必要があるようです。 各モデルについて、タイプキー(タイプ:1)とのリレーションを定義します。

+0

明らかに、私はそうしました。 :) – Darmen