Cakephp在视图中找到计数组

时间:2013-02-23 10:19:31

标签: cakephp count group-by find

我有一个模型Gameline和控制器GamelinesController和数据库'gamelines'。 我想运行此查询

enter image description here

这意味着有一条记录属于2013-02-18,并且有两条记录属于2013-02-25。

之后如何循环查看属于视图中每个g_time字段的计数请帮帮我。

1 个答案:

答案 0 :(得分:1)

对于使用MySQL函数的字段,例如DATE()。您可以使用Virtual Fields。在您的情况下,您可以在Gameline模型中添加类似的内容:

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct($id, $table, $ds);
    $this->virtualFields = array(
        'date' => 'DATE(' . $this->alias . '.g_time)'
    );
}

这样,格式化日期将作为虚拟字段date使用(如果您已经有一个类似的字段,则使用其他名称。)

然后在find()操作中,获取新的虚拟date字段。要将这些结果输出到视图,您只需循环遍历结果集即可。假设您将find()结果存储在名为$data的视图参数中,然后您将显示如下表格:

<table>
  <thead>
    <tr>
      <th>Date</th>
      <th>Count</th>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($data as $row): ?>
    <tr>
      <td><?php echo $row['Gameline']['date']; ?></td>
      <td><?php echo $row['Gameline']['count']; ?></td>
    </tr>
    <?php endforeach; ?>
  </tbody>
</table>