2012-03-19 8 views
3

私はyiiフレームワークを使用しています。私は関係がありますyiiの関係STATによる注文

'revCount'=>array(self::STAT, 'Review','rid','condition'=>'status=1')//count review for each restaurant 

今、すべてのレストランの注文をレビュー数で取得したいと思います。

Restaurant::model()->findAll('with'=>'revCount'); 

私はすべてのレストランをレビューカウントで注文するように追加する必要がありますか?

+0

uが レストランを試してみました::モデル() - => 'と'>のfindAll( 'revCount'、 'order' => 'revCount'); それは動作しますか? – Arfeen

+0

番号。列 'revCount'が存在しない – iThink

答えて

1

これは、単一のクエリを使用して他のモデルへの参加方法です:

Restaurant::model()->with('revCount')->findAll(); 

しかし、私はあなたが欲しいと思うことはモデルに参加することではなく、ただそれによってソートします。これと同様に:

Restaurant::model()->with(array(
    'reviews'=>array(
     // we don't want to select reviews 
     'select'=>false, 
     // but want to get only reviews with status=1 
     'joinType'=>'INNER JOIN', 
     'condition'=>'reviews.status=1', 
    ), 
))->findAll(); 
1

あなたは次のことを行うことができるはず。..

Restaurant::model()->findAll('with'=>'revCount', 'select' => '(SELECT COUNT(*) FROM review WHERE rid = t.id AND status = 1) AS revCount'); 
関連する問題