Yii框架:CMenu - 获取消息计数

时间:2013-07-17 08:01:02

标签: frameworks yii

我正在学习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是否有可能为关系添加标准?

1 个答案:

答案 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