読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

beforeFind afterSaveなどの使いかた

cakephp

使い方もよく分からなかったので小さなメモです。
beforeで始まるやつや、afterで始まるやつは、基本的に
モデルに備わっているメソッドで、
before系はそのメソッド(saveやfind)が実行される前に呼び出される関数で、
after系はそのメソッド(saveやfind)が実行された後に呼び出される関数です。
書き方としては、モデルファイルにただ関数を定義するだけ。

<?php

....
function beforeFind($queryData) {
  $queryData['conditions']['id'] = 3;
  return $queryData;
}
....

みたいに書くだけで、上記の処理がfindを呼び出す前に実行されたりする。

一応validateの後にbeforeSaveをやるとか順序があるので、
きちんと見極めること。

あと、findはall、first、countなど第一引数によって全く異なるデータ構造の
返り値が得られてしまうので、そこらへんのカバーも忘れないこと。