2010-09-05 26 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