INT列中的CakePHP保存字段空值

INT列中的CakePHP保存字段空值,cakephp,Cakephp,我想用空值更新一个INT列。我将CakePHP2.3与saveField('field','value')方法一起使用 这是我的密码: $this->Customer->id = $customer_id; if ($this->Customer->saveField('account_id', 'NULL')) { //Do some stuff } 因此,当我输入'NULL'时,该行被更新为0。我尝试了不带引号的NULL,并且该行未更新 编辑: 数据库中的

我想用空值更新一个INT列。我将CakePHP2.3与saveField('field','value')方法一起使用

这是我的密码:

$this->Customer->id = $customer_id;
if ($this->Customer->saveField('account_id', 'NULL')) {
     //Do some stuff
}
因此,当我输入'NULL'时,该行被更新为0。我尝试了不带引号的NULL,并且该行未更新

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

你知道吗


谢谢

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

if($this->Customer->saveField('account_id', null))
{
  //do some stuff
}
else
{
  //do you get anything here ?
  debug($this->Customer->validationErrors);
}

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

if($this->Customer->saveField('account_id', null))
{
  //do some stuff
}
else
{
  //do you get anything here ?
  debug($this->Customer->validationErrors);
}


我遇到了一个类似的问题,原因是上传行为导致验证阻止了保存。检查你的模型,可能会有帮助。我假设即使验证规则阻止保存,saveField也会返回true。

我也遇到过类似的问题,原因是上载行为导致验证阻止保存。检查你的模型,可能会有帮助。我假设即使验证规则阻止保存,saveField也会返回true。

这是一个明显的问题,但无论如何:您的db字段是否配置为可以为null?是的,默认值设置为null。我更新了帖子,看看这个链接:似乎这是很多人都遇到过的问题?@TheCapn你的链接已经有5年多的历史了。CakePHP从那以后有了一些变化。@kdelemme-如果你还没有使用DebugKit(),现在就停止一切,去安装它(不是开玩笑)。它将向您显示运行的每个查询、页面上的所有变量以及许多其他方便的东西。这是一个明显的问题,但无论如何:您的db字段是否配置为可以为null?是的,默认值设置为null。我更新了帖子,看看这个链接:似乎这是很多人都遇到过的问题?@TheCapn你的链接已经有5年多的历史了。CakePHP从那以后有了一些变化。@kdelemme-如果你还没有使用DebugKit(),现在就停止一切,去安装它(不是开玩笑)。它会显示运行的每个查询,页面上的所有变量,以及许多其他方便的东西。我已经试过了,就像我在帖子中说的那样。这不会更新行。实际上,执行//do some stuff。它还使用
null
值执行?是,使用“null”、null和null。只有“NULL”值将我的行更新为0。其他人什么也不做。奇怪的是,如果它什么也不做,却返回真值。您的客户模型中是否有任何回调,例如
beforeSave()
?尝试将调试级别设置为2并检查生成的SQL查询。我已经尝试过了,就像我在文章中所说的那样。这不会更新行。实际上,执行//do some stuff。它还使用
null
值执行?是,使用“null”、null和null。只有“NULL”值将我的行更新为0。其他人什么也不做。奇怪的是,如果它什么也不做,却返回真值。您的客户模型中是否有任何回调,例如
beforeSave()
?尝试将调试级别设置为2,并检查生成的SQL查询。