2013-04-29 88 views
4

我正在使用cakephp2。如何刪除一個條件的單個記錄?如何用cakephp中的條件刪除單個記錄?

我有一個名爲posts的字段id,title,post。主鍵是id。我想刪除id = 5的單個記錄?

這怎麼可能?

這是我魔杖的查詢轉換,

$this->query('delete * from posts where id = 5'); To cakephp ? 

這個功能是如何命名後的CakePHP modeln寫?

+0

所以你想刪除所有記錄與ID(這應該是一個主鍵)5? – Preetam 2013-04-29 10:23:41

+0

是的。魔杖刪除id = 5的字段 – 2013-04-29 10:26:34

+0

我猜你想要刪除id = 5的「單個」記錄。我的答案可能會對你有所幫助。 – Preetam 2013-04-29 10:29:42

回答

12

你可以這樣做。 $this->Model->delete(5); 或者您可以先將id分配給模型,然後將其刪除。如

$this->Model->id = 5; 
$this->Model->delete(); 

如果要執行刪除(或任何其他)查詢,而一個模型,那麼你應該嘗試

$db = ConnectionManager::getDataSource('default'); 
$db->rawQuery("DELETE FROM table WHERE id=5"); 
1
delete(int $id = null, boolean $cascade = true); 

刪除由$ id標識的記錄。默認情況下,也會刪除依賴於指定要刪除的記錄的記錄。

您也可以在控制器應用功能要刪除一條記錄

$this->Post->delete($this->request->data('Post.id')); 

,或者如果靜態ID是衆所周知的,你

$this->Post->delete(5); 

請讓我知道如果我能幫助你更

5

使用deleteAll()

$this->Model->deleteAll(array('Model.field_name'=>'field_value')); 

或按主鍵刪除:

1. $this->Model->delete(primary_key_value); 

2. $this->Model->id = primary_key_value; 
    $this->Model->delete(); 

希望它會幫助別人。