LoginSignup
2
1

More than 5 years have passed since last update.

[CakePHP2] イベント(コールバック)無効化

Posted at

イベント(コールバック)無効化

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’を指定して、コールバックを有効にできます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1