CakePHP:一个hasmany关联的COUNT函数

时间:2010-09-05 15:41:19

标签: php cakephp cakephp-appmodel

我正在尝试通过hasmany关联加入模型,然后计算记录数。基本上我有用户和项目。我想在用户索引操作上显示关联项目的数量。

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

2 个答案:

答案 0 :(得分:1)

counterCache需要加入belongsTo关联。在您的示例中,您需要在project_count表中使用users,而在项目模型的关联belongsTo中,您需要将counterCache激活为true。 Check the manual

答案 1 :(得分:1)

如果您已完成所有操作且project_count仍未更新,请尝试关闭app / config / core.php中的缓存

我在更新数据库架构时遇到了这个问题但是Cake正在缓存旧架构,因此没有找到计数器字段。