我尝试使用user_id构建一个具有group的查询,选择user_id,count(id),condition,join。 我可以通过findall命令得到一个真实的结果,但只有我不能显示计数(id) 我把代码留在了这里
控制器中的
$criteria=new CDbcriteria();
$criteria->condition = 'serviceId=:serviceId';
$criteria->params = array(':serviceId'=>1);
$criteria->group = 't.user_Id';
$criteria->select = array('t.user_Id,count(psh_profile_information_services.id) AS count');
$criteria->join = 'left join psh_profile_information_services on t.id=psh_profile_information_services.profileInformationId';
$moli= ProfileInformation::model()->findAll($criteria);
$this->render('conectionpoint', array('moli'=>$moli ));
在视图中
foreach ($moli as $mol)
{
echo "user_Id: ".$mol->user_id." --- count:".???????? ;
}
打印$ mol
ProfileInformation Object ( [_new:CActiveRecord:private] => [_attributes:CActiveRecord:private] => Array ( [user_Id] => 1 [createDate] => 1393/03/23 - 15:49:26 [modifiedDate] => 1393/03/23 - 15:49:26 ) [_related:CActiveRecord:private] => Array ( ) [_c:CActiveRecord:private] => [_pk:CActiveRecord:private] => [_alias:CActiveRecord:private] => t [_errors:CModel:private] => Array ( ) [_validators:CModel:private] => [_scenario:CModel:private] => update [_e:CComponent:private] => [_m:CComponent:private] => )
答案 0 :(得分:2)
在ProfileInformation类文件中 -
class ProfileInformation extends ActiveRecord
{
$public $total_info;
[....] //Rest of the code.
在“控制器操作”中, 改变 -
$criteria->select = array('t.user_Id,count(psh_profile_information_services.id) AS count');
到
$criteria->select = array('t.user_Id,count(psh_profile_information_services.id) AS total_info');
在视图文件中 -
foreach ($moli as $mol)
{
echo "user_Id: ".$mol->user_id." --- count:".$mol->total_info;
}
这应该可以正常工作。
如果没有,那就做简单的调试 -
echo "<pre>";
foreach($moli as $mol) {
echo 'Total Info: ' . $mol->total_info . "<br />";
foreach($mol as $key => $value) {
echo $key . ' ' . $value . "<br />";
}
echo "<br />";
}
exit();
并检查值。