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 にあります。この情報を取得する簡単な方法はありますか? CakePHP によって値が自動的に生成される 2 つのフィールドを知っcreatedています。modifiedそれで、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 に答える