2012-05-15 93 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