11187


CakePHP2.6.4を使い始めたのですが、counterCacheを使ってみたいと考えています。  
カウントと同時に更新日時も保存したいのですが、counterCacheのオプションなどありますでしょうか？


CC BY-SA 3.0
2015-06-09T07:59:39.730
11171
2015-06-09T12:20:15.737
8910
question
cakephp
CakePHP2のcounterCacheで更新日時もupdateしたいです


`counterCache`ではカウント値の更新のみが行えます。  
また、更新には`updateAll`メソッドを使用しているので、`beforeSave`, `afterSave`などのコールバックも呼ばれません。

子モデル保存時に、親モデルへ子モデルの最終更新時刻を保存したいのであれば、子モデル側の`afterSave`,
`afterDelete`で親モデルを呼び出して更新時刻を保存します。

例)

[code]

    public function afterSave($created, $options = array()) {
        $parentId = $this->data['Child']['parent_id'];
        $lastUpdated = $this->field('updated', ['parent_id' => $parentId], ['updated' => 'desc']);
        $this->Parent->save([
            'id' => $parentId,
            'children_last_updated_at' => $lastUpdated
        ], [
            'validate' => false,
            'callbacks' => false,
        ]);
    }
    
[/code]


CC BY-SA 3.0
2015-06-09T12:20:15.737
11187
2015-06-09T12:20:15.737
2668
11171
answer