2012-05-15 89 views
0

我有一個很奇怪的問題。我從一個形式,沒有瘋狂的都做在CakePHP的標準節省:CakePHP字段沒有更新

$this->Ride->read(null,$id); 
$ride = $this->Ride->data; 

$this->Ride->set(array(
       'assigned' => 2, 
       'pickup_driver_id' => $driver['UserDriver']['id'] 
      )); 

$this->Ride->save() 

然而,每次各領域的更新,除了分配的現場。在DB中分配的是tinyint(2)。我試過不驗證...等。任何建議都會很棒!先謝謝你。

回答

0

我建議你仔細檢查你的模型定義,看看有沒有什麼好玩的。關閉驗證將是我的第一個建議,但你說你已經覆蓋了,所以我不會說任何關於這個。 (笑)

另外,檢查$ this-> Ride-> save()方法的返回值,它應該是true。如果沒有,檢查這樣的錯誤...

if(!$this->Ride->save()){ 
    debug($this->Ride->validationErrors); die(); 
} 
+0

感謝您的答覆。是的,我嘗試過驗證錯誤。奇怪的部分是,$ this-> Ride-> save()成功,所有字段都被更新,除了在數據庫中分配。 pickup pickup _driver_id實際上是新的值,以及設置的其他字段,除了已分配的所有字段以外的所有字段。 – Michael

+1

CakePHP將tinyint(1)視爲一個虛擬布爾值,只會將0或1保存到該字段中。我將它改爲tinyint(2),但沒有清除app/tmp/models緩存,所以它仍然無法工作,直到我改變了它。在這裏找到它: http://www.devarticles.in/cakephp/field-type-tinyint1-would-not-save-values-other-than-0-and-1-in-cakephp/ – Michael