0

假设,这是我项目中的一个 db 表:

<table>
  <tr>
     <th>id</th>
     <th>title</th>
     <th>description</th>
     <th>created</th>
     <th>modified</th>
     <th>........</th>
  </tr>
  <tr>
     <td>1</td>
     <td>Some Title</td>
     <td>Some Description</td>
     <td>7/8/2013 8:50</td>
     <td>7/8/2013 8:50</td>
     <td>........</td>
  </tr>
</table>

现在,我想获取记录 1 (id=1) 被查看的次数。那是在 CakePHP 中。有什么简单的方法可以获取这些信息吗?我知道created并且modified是 2 个字段,其值由 CakePHP 自动生成。那么,这里有field什么可以使用的吗?我将此标记为.......... 或者,有没有其他方法可以做到这一点?谢谢。

4

2 回答 2

1

没有内置的东西,但自己制作并不难。(困难的部分是当搜索引擎机器人访问该页面时,如果它们可以访问,则不增加计数器。)

例如在数据库中创建一个字段viewcount INT DEFAULT 0。在控制器中,假设调用了模型Model并且操作是view(替换为实际名称),添加在查看页面时递增计数器的代码:

function view( $id ) {
   // ....
   $this->Model->updateAll( 
       array( 'Model.viewcount', 'Model.viewcount + 1' ),
       array( 'Model.id', $id )
   );
}
于 2013-08-07T15:18:24.910 回答
1

CakePHP 没有“自动”查看字段。如果你想要这个功能,你必须使用updateAll方法自己实现它:

$this->Model->updateAll( 
    array('Model.views', 'Model.views + 1'),
    array('Model.id', $id)
);
于 2013-08-07T15:20:26.640 回答