我在cakepp中用saveField
方法更新了一个字段。
示例:
$this->Attachment->id = $id;
$updateResult = $this->Attachment->saveField('dispatched', '1');
现在,如果数据库中不存在$id
的值,则saveField
在数据库中插入一条新记录。但我想更新记录,而不是新的插入。如果数据库中不存在$id
的值,那么我希望从saveField
返回false
我是怎么做的?
您必须检查记录是否存在
if ($this->Attachment->findById($id)) {
$this->Attachment->id = $id;
return $this->Attachment->saveField('dispatched', '1');
} else {
return false;
}
只需将您的保存包装在一个条件中:
$this->Attachment->id = $id;
if(isset($id) {
//your save here
$updateResult = $this->Attachment->saveField('dispatched', '1');
}else{
return false;
}
评论后更新:
因此,进行计数并将其用作测试:
$settings = array(
'conditions'=>array(
'Atachment.id'=>$id;
)
);
$test = 0;
$test = $this->Attachment->find('count', $settings);
if($test >0 {
//your save here
} else {
//return false here
}
应该这样做。