2010-09-05 60 views
0

我試圖通過hasmany關聯加入模型,然後計算記錄數。基本上我有用戶和項目。我想在用戶索引操作中顯示關聯項目的數量。CakePHP:hasmany關聯的COUNT函數

var $hasMany = array('Project' => 
           array('className'  => 'Project', 
             'conditions' => '', 
             'order'   => '', 
             'limit'   => '',      
             'foreignKey' => 'user_id',    
             'dependent'  => true,     
             'exclusive'  => false,     
             'finderQuery' => '',      
             'fields'  => '',      
             'offset'  => '',      
             'counterQuery' => '', 
             'counterCache' => true 
            )   
        ); 

所以我加入了user_id上的Project模型,並將counterCache設置爲true。問題是我如何在用戶索引視圖中訪問它?

我已經試過

<?php echo $user['Project']['project_count']; ?> 

<?php echo $user['User']['project_count']; ?> 

有人能幫助我嗎?

Jonesy

回答

1

counterCache需要在該belongsTo關聯。在您的示例中,您需要在users表中有project_count,而在項目模型的關聯belongsTo中,您需要激活counterCache爲true。 Check the manual

+0

您好我已經在項目模型中啓用了counterCache,並試圖使用<?php echo $ user ['User'] ['project_count']; ?>當我查看sql轉儲我實際上沒有看到Count函數被調用 – iamjonesy 2010-09-08 08:50:43

1

如果你已經做了所有該與project_count仍然沒有更新,請嘗試在應用程序關閉緩存/配置/ core.php中

我遇到了這個問題,當我更新了數據庫架構,但蛋糕緩存舊的模式,因此沒有找到計數器字段。

+0

抱歉忘了更新這個問題。愚蠢的是我沒有將計數字段添加到我的項目表中。我知道,對吧 :( – iamjonesy 2010-10-15 07:34:04