你如何使用cakephp来计算,例如一年中每个月发布的帖子数量?
最好使用Model-> find('count')并获取数组中的数据。
答案 0 :(得分:4)
我只是做了类似的事情,仅使用CakePHP(没有直接查询)。它适用于CakePHP 2,尚未在1.x中进行测试。
您的示例的代码将是这样的:
$params = array(
'recursive' => -1,
'fields' => array('id', 'MONTH(created)')
'group' => array('YEAR(created)', 'MONTH(created)')
);
$numberOfPosts = $this->Model->find('count', $params);
答案 1 :(得分:1)
这很接近
<强>查询强>
$data = $this->Post->query("SELECT COUNT(id),MONTH(created) FROM posts GROUP BY YEAR(created), MONTH(created);");
<强>返回强>
Array
(
[0] => Array
(
[0] => Array
(
[COUNT(id)] => 1
[MONTH(created)] => 3
)
)
[1] => Array
(
[0] => Array
(
[COUNT(id)] => 2
[MONTH(created)] => 4
)
)
)
答案 2 :(得分:0)
使用蛋糕时,我更喜欢尽可能靠近框架。这意味着我尽量避免直接在控制器中编写查询,因为这会导致模型代码无处不在。因此,我推荐两种解决方案之一
1 :(以及我用更复杂的东西做的事情):为你想要做的计算创建一个视图并创建一个匹配的模型。
2:使用前面提到的查询,但将其放在模型类中,而不是应用程序类。