2

我想更新一个具有 NULL 值的 INT 列。我正在使用带有 saveField('field', 'value') 方法的 CakePHP 2.3。

这是我的代码:

$this->Customer->id = $customer_id;
if ($this->Customer->saveField('account_id', 'NULL')) {
     //Do some stuff
}

因此,当我输入“NULL”时,该行更新为 0。我尝试了不带引号的 NULL 并且该行没有更新。

编辑:数据库中的字段接受 NULL 值。

你有什么主意吗 ?

谢谢

4

2 回答 2

3

不要'NULL'作为字符串传递,而是作为null值传递:

if($this->Customer->saveField('account_id', null))
{
  //do some stuff
}
else
{
  //do you get anything here ?
  debug($this->Customer->validationErrors);
}
于 2012-11-29T17:25:41.397 回答
1

我遇到了由上传行为引起的类似问题,该行为具有阻止保存的验证。检查您的模型,它可能会有所帮助。我假设即使验证规则阻止保存, saveField 也会返回 true。

于 2013-07-02T14:24:27.470 回答