停止回调传播

时间:2013-05-21 16:17:12

标签: php cakephp event-handling cakephp-2.0

我有一个行为更新记录而不是从beforeDelete回调中删除。

public function beforeDelete(Model $model, $cascade = true) {
    [...]

    return true;
}

当我返回true时,删除过程继续,而不是停止。我不想停止传播delete的下一个事件。

我已阅读stopPropagation() CakeEvent的{​​{1}}功能,但不知道该怎么做以及如何在行为中正确使用。愿你帮助我?

2 个答案:

答案 0 :(得分:0)

取自the CakePHP core libraries help page

public function beforeDelete(Model $model, $cascade = true,$event) {
    [...]

    $event->stopPropogation();
}

应该这样做。

答案 1 :(得分:0)

如果要停止删除,则应在beforeDelete()回调中返回 false ,而不是返回 true 。 检查the documentation

  

如果要继续删除,则此函数应返回true,如果要中止,则返回false。

所以你的代码应该是这样的:

public function beforeDelete(Model $model, $cascade = true) {
    [...]

    return false;
}