イベント(コールバック)無効化
DBの値を単純に処理したいのに、プラグインで実装されているイベント処理が予定外に実行されてしまい困ったことがあり、その時に使いました。
参照系
find(beforeFind, afterFind共に無効化)
$this->find('first', array(
'callbacks' => false
));
find(beforeFindのみ有効)
$this->find('first', array(
'callbacks' => 'before'
));
find(afterFindのみ有効)
$this->find('first', array(
'callbacks' => 'after'
));
更新系
save(beforeSave, afterSave共に無効化)
$this->save($data, array(
'callbacks' => false
));
save(beforeSaveのみ有効)
$this->save($data, array(
'callbacks' => 'before'
));
save(afterSaveのみ有効)
$this->save($data, array(
'callbacks' => 'after'
));
save(beforeSave, afterSave, validation無効化)
$this->save($data, array(
'callbacks' => false,
'validate' => false,
));
参考
http://blog.code-life.net/blog/2013/09/25/cakephp-model-callback/
http://book.cakephp.org/2.0/ja/models/saving-your-data.html
save(array $data = null, array $params = array())
$params 配列には、以下のキーを指定できます。
validate バリデーションの有効または無効について、trueまたはfalseを指定します。
fieldList 保存する対象のフィールドのリストを指定します。
callbacks falseをセットするとコールバックを無効にします。他に’before’または’after’を指定して、コールバックを有効にできます。