CDbCriteria疑问~


case 'hasStockProduct' :

    $criteria->join='LEFT JOIN {{stockproduct}} p ON (t.sid=p.vendor_id)';

    $criteria->group='t.sid';

    $criteria->having='COUNT(p.sid)>1';

    break;



使用了上面的 join 和 group 以及 having 后,

搭配CActiveDataProvider 使用,计算总计条数,就不准确了~

请问如何解决?

这个问题我以前碰到过,而且强也回答过,呵呵

具体做法是

手动获取记录总数,再赋值给CActiveDataProvider




$count=Model::model()->getDbConnection()->createCommand("SELECT COUNT(*) FROM (SELECT name FROM {{table}} GROUP BY field HAVING COUNT(*) > 1) t")->queryScalar();

$dataProvider->setTotalItemCount($count);



因为条件是动态的,人工获取的话,会有相当的困难。。。