删除数据

    删除指定$id的记录。默认情况下,会级联删除依赖于该记录的所有记录。

    例如,当删除一个User,User关联了许多条Recipe记录(使用 'hasMany' 或'hasAndBelongsToMany' 来关联Recipes)。

    • 如果$cascade设置为false,删除User不会删除关联的Recipe记录。
      如果你使用的数据库支持外键和级联删除,会比CakePHP自带的级联删除效率更高。使用模型中的 Model::delete() 方法好处之一是支持使用行为及回调方法:

    注解

    如果你删除一条带有依赖(dependent)关联记录的记录,而其中某个 delete 回调函数,例如 ,返回 false,那么这不会阻止事件的进一步传播,也不会改变最初的 delete 方法的返回值。

    deleteAll

    deleteAll(mixed $conditions, $cascade = true, $callbacks = false)

    • conditions 匹配的条件
    • callbacks 布尔型, 执行回调函数
      执行成功返回true,失败返回false。

    Example:

    1. // 与 find() 方法类似,删除满足条件的记录

    如果通过回调方法和(或)级联方式删除记录,这往往会导致更多的查询。在deleteAll() 中匹配的记录被删除前,关联会重置。如果是使用bindModel()或unbindModel()来改变关联,应该设置 resetfalse

    注解