CakePHP,观看次数

时间:2013-08-07 15:09:00

标签: database cakephp

假设,这是我项目中的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。有没有简单的方法来获取这些信息?我知道createdmodified是2个字段,其值由CakePHP自动生成。那么,这里可以使用field或其他东西吗?我将其标记为.........。或者,有没有其他方法可以做到这一点?感谢。

2 个答案:

答案 0 :(得分:1)

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

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

function view( $id ) {
   // ....
   $this->Model->updateAll( 
       array( 'Model.viewcount', 'Model.viewcount + 1' ),
       array( 'Model.id', $id )
   );
}

答案 1 :(得分:1)

CakePHP没有“自动”查看字段。如果您需要此功能,则必须使用updateAll方法自行实现:

$this->Model->updateAll( 
    array('Model.views', 'Model.views + 1'),
    array('Model.id', $id)
);