0

我正在尝试通过 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']; ?>

有人能帮我吗?

琼斯

4

2 回答 2

1

counterCache需要加入belongsTo协会。在您的示例中,您需要project_countusers表中拥有,而在项目模型的关联中belongsTo,您需要将其激活counterCache为 true。检查手册

于 2010-09-05T19:00:31.987 回答
1

如果你已经完成了所有这些并且 project_count 仍然没有更新,请尝试在 app/config/core.php 中关闭缓存

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

于 2010-10-15T03:55:59.740 回答