2013-07-17 42 views
0

我正在學習yii框架,我有問題。我有的CMenu: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(管理員)',但我希望 '消息(3)',所以我覺得這一行是錯誤的:

User::model()->with('messages_count')->find() 

但我不知道如何纔算數。你可以幫我嗎?

P.s是否有可能爲關係添加標準?

回答

1

find()找到指定條件下的單個活動記錄。

count()找到滿足指定查詢條件的行數。

你sollution:

User::model()->with('messages_count')->count(); 

隨着CDbCriteria:

$criteria=new CDbCriteria(); 
$criteria->with = 'messages_count'; 
// your extra criteria 
User::model()->count($criteria); 

一定要檢查出Yii的文件,特別是如果你正在學習與誼和的CActiveRecord工作:http://www.yiiframework.com/doc/api/1.1/CActiveRecord