2012-01-30 5 views
1

このような単純なことですが、グループ内のレコード数を返すクエリを取得できません。これは私の声明です:Doctrine:groupbyステートメントのレコードの行数を返す方法

public function getGroupCount($user_id) 
{ 
    $q = Doctrine_Query::create() 
     ->select('ss.*') 
     ->from('SalarySurvey ss') 
     ->where('ss.user_id=?', $user_id) 
     ->groupBy('created_at') 
     ->execute(); 
    return $q->rowCount(); 
}  

上記のクエリでは、rowCount()は機能しません。

これはforeach文で使用されていることもわかります。

答えて

2

私が知る限り、CappYが示唆しているように、これはDoctrine 1.2では不可能です。回避策として、私は最終的に、テーブルに別のフィールドを追加し、保存時に各グループに対して同じフィールドを設定することによって、各グループのカウントを取得することができました。その後、私はそのフィールドを引き出すためにクエリを変更し、単純にしました:

$q->count(); 
0

Doctrine 1.2では動作しませんが、PHPのcount関数やSELECT COUNT() 'cnt'を使用することはできません。

リターンカウント($ q);

+0

私はあなたの提案に似たものを試してみました。しかし、私は答えに投稿する私の問題を修正することができました。しかし、あなたは正しかった...少なくとも私の経験ではこれまでのところ...教義はこれを許さない。だから、この質問につまづいて答えを探している人のためにあなたの答えを残してください。 – Patrick

関連する問題