2011-05-04 49 views
0

我正在CakePHP中的項目工作。cakephp更新記錄與非id唯一字段

當我們要更新數據庫中的記錄,我們一般做:

$save_arr = array('field1'=>'value1'); 
$this->MyModel->id = $id; 
$this->MyModel->save($save_arr); 

我在我更新與Ajax的一些數據的情況下,我只有通過字段名(字段1)它的新值(value1)和另一個在我的表中唯一的字段的值(比如說'myUniqueField'的值爲12)。 我不明白「id」字段的價值。

如何使用此非ID字段更新我的記錄,這將是唯一的。

請幫我一把。

感謝

回答

2

可以使用updateAll()方法:

$this->Model->updateAll(
    array('Model.field1' => "'value1'"), // Watch out! Manual escaping here! 
    array('Model.MyUniqueField' => 12) 
); 
+0

感謝砂光機,這是有益的... – Prashant 2011-05-04 14:09:35

+0

你可以做同樣的方式可以用deleteAll? – bpneal 2011-06-15 09:06:31

+0

@bpneal:是的。請參閱http://book.cakephp.org/view/1038/deleteAll – 2011-06-15 13:59:45