2

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

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

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

4

1 回答 1

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对每一行单独调用,允许删除“有效”行并保留“无效”行。

于 2012-12-05T09:48:31.830 回答