刪除數據,一些案例實在的說明一些代碼

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即使沒有記錄刪除,刪除查詢是成功的條件,沒有匹配的記錄依然存在。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章