在beforeDelete回调中返回false会导致deleteAll死亡

时间:2012-12-05 03:18:10

标签: cakephp

删除记录时,我正在测试条件是真还是假,并根据结果继续删除或从中返回。

问题是“return false”会完全停止deleteAll。我的理解是deleteAll只会移动到下一条记录。

这是一个错误,还是我错过了什么?

1 个答案:

答案 0 :(得分:2)

beforeDelete方法允许您在出现故障时中止删除操作。通过让它返回false,您可以中止操作。在这种情况下,deleteAll操作,意味着您中止所有删除。您更有可能寻找的是在foreach循环中删除,例如:

// $data would be the resultset of the rows you want to delete
foreach($data as $row) {
    $this->Model->delete($row['Model']['id']);
}

这样,每个行都会单独调用beforeDelete,允许删除“有效”行,并保留“无效”行。

相关问题