2012年4月16日

Yii Framework: カウンタを作る

CActiveRecord クラスには saveCounters() と updateCounters() というメソッドがあります。これは例えば、特定のページにユーザが訪問した回数などを保存するときに便利です。

Yii API: CActiveRecord::saveCounters() でのサンプルコードを見ればわかるかと思いますが、特定のモデルデータを 1 件取得後、$postRecord>saveCounters(array('view_count' => 1));
と書くと、view_countカラムの値が 1 加算されます。例えば actionView() というアクションを作って、上記のようなコードを書くと actionView() が呼ばれる度に view_count カラムの値が 1 加算されていきます。

2 を指定すると 2, 4, 6...
3 を指定すると 3, 6. 9... と加算され、
-1を指定すると -1, -2, -3...
-2 を指定すると -2, -4, -6 という具合になります。

saveCounters() は現在の ActiveRecord のオブジェクトを保存し、updateConuters() はそれ自身で condition などを組み立てられる点が異なります。
( updateConuters の例: http://www.yiiframework.com/wiki/282/using-counters-with-activerecord/#c5977  )

参考リンク

0 件のコメント:

コメントを投稿