Modelでなるべくシンプルなインクリメントを実行したい
CakePHP(1.3系)でなるべくシンプルな実装でインクリメントのみの単純な機能を実装したい……、としたら↓みたいな実装はベター?
public function incrementPv($id) { $table = $this->getDataSource()->fullTableName($this); $query = "UPDATE {$table} SET `pv` = `pv` + 1 WHERE `id` = :id"; $this->query($query, array('id' => $id)); }
ベストではないけど、わりかしベターな気はする。数週間後に読み返したら、もっと適当な方法が思いつくかも。
DboSource::renderStatement()とかDboSource::buildStatement()を活用すると、もっと綺麗に実装できるのかもしれないけど、気持ちが悪いというか、なんだかブードゥーくさくて避けておきたい。