您的位置:首页 > 编程语言

删除数据,一些案例实在的说明一些代码

2014-04-02 18:06 127 查看
CakePHP的模型类提供了一些方法来从数据库删除记录。

delete

delete(integer $id = null, boolean $cascade = true);

删除这个记录被$ id。默认情况下,还依赖于指定的记录删除记录被删除。

例如,当删除一个用户记录,与许多配方记录(用户“hasMany”或“hasAndBelongsToMany”食谱):

如果美元级联设置为true,相关配方记录也删除模型的dependent-value是否设置为true。

如果美元级联设置为false,配方记录用户被删除后将继续。

如果您的数据库支持外键和级联删除,通常是更有效率的依赖比CakePHP的级联功能。使用模型的级联特性的一个好处Model::delete(),它允许您利用行为和模型回调函数:
$this->Comment->delete($this->request->data('Comment.id'));

你可以把自定义逻辑删除过程使用beforeDelete和afterDelete回调模型和行为。有关更多信息,请参见回调方法。
deleteAll

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

deleteAll() delete()类似,除了deleteAll()将删除所有记录匹配提供的条件。$条件数组应该作为SQL提供片段或数组。

环境条件相匹配

级联布尔,删除记录设置为true,取决于这个记录

回调布尔,跑回调

返回布尔真正的成功,如果执行失败将返回false。

例子:
// Delete with array conditions similar to find()
$this->Comment->deleteAll(array('Comment.spam' => true), false);

如果你与回调函数和/或级联删除,会被发现,然后删除行。这往往会导致更多的查询。协会将重置在匹配的记录被删除之前deleteAll()。如果你使用bindModel()或unbindModel()改变的关联,你应该设置重置为假。

请注意

deleteAll()将返回true即使没有记录删除,删除查询是成功的条件,没有匹配的记录依然存在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  删除数据
相关文章推荐