cakephp一年中每月COUNT项

时间:2010-04-16 19:27:24

标签: mysql cakephp

你如何使用cakephp来计算,例如一年中每个月发布的帖子数量?

最好使用Model-> find('count')并获取数组中的数据。

3 个答案:

答案 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:使用前面提到的查询,但将其放在模型类中,而不是应用程序类。