我正在学习yii框架,我有问题。我有 CMenu:
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'Messages ('. User::model()->with('messages_count')->find() .')', 'url'=>array('/message/index')),
array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest),
array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('/site/logout'), 'visible'=>!Yii::app()->user->isGuest)
),
)); ?>
用户模型中的和关系:
'messages_count' => array(self::STAT,'Message','owner_id'),
在显示'Messaages(admin)'的网站中,但我希望'Messages(3)',所以我认为这一行是错的:
User::model()->with('messages_count')->find()
但我不知道如何只计算。你能救我吗?
P.s是否有可能为关系添加标准?
答案 0 :(得分:1)
find()
找到具有指定条件的单个活动记录。
count()
查找满足指定查询条件的行数。
你的溶液:
User::model()->with('messages_count')->count();
使用CDbCriteria:
$criteria=new CDbCriteria();
$criteria->with = 'messages_count';
// your extra criteria
User::model()->count($criteria);
请务必查看Yii文档,特别是如果您正在学习使用Yii和CActiveRecord:http://www.yiiframework.com/doc/api/1.1/CActiveRecord