获取CakePHP中相关模型的计数总和

时间:2011-08-04 12:01:37

标签: php cakephp count nested associations

这有点难以解释,所以我会尽量清楚。

在我的CakePHP项目中,假设我有一个名为Country的模型,CountryhasMany有一个Region关联。现在,RegionhasMany之间也有User个关联,而国家则没有(因为Region可以在某个时间切换到另一个国家/地区,因此将用户关联到带有外键的Country不是一个选项。)

所以,现在,我的SQL基本上看起来像这样:(仅部分)

users: id int(16); region_id int(16);
regions: id int(16); country_id int(16);
countries: id int(16);

我想要做的是在CakePHP中找到一个函数或类似counterCache的函数,我可以通过Countries模型访问该函数,并在User中获得Region的计数属于Country。我知道我可以获得[用户] [国家],循环遍历区域并对其进行计数,但是是否有一个缓存方法(最好)不需要额外的代码?

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以用find('count','recursive'=> 2)方法来做到这一点

您可以找到文档here

答案 1 :(得分:1)

在Region上使用counterCache,在Country上使用virtualField('population'=>'SUM(Region.user_count'))(这只是伪代码!)。

相关问题