Kohana ORM插入NULL而不是空字符串

时间:2012-07-19 08:57:14

标签: php mysql kohana kohana-orm kohana-3.2

在Kohana 3.2中,当你覆盖ORM的函数'values',然后做类似的事情:

public function values(array $values, array $expected = NULL) {           

  if($values['a_column'] == "") $values['a_column'] = NULL;

  return parent::values($values);
}

无论如何,NULL值将转换为空字符串,这不是我想要的行为。 有人知道解决方法吗?我在文档或网络上找不到任何内容......

2 个答案:

答案 0 :(得分:4)

我发现了答案。只需在模型中使用过滤器,如下所示: -

public function filters()
{
  return array(
    'initial_assessment_date' => array(
      array(function($value) {
        return (!$value) ? NULL : $value;
      })
    )
  );
}

答案 1 :(得分:1)

这是因为后来的ORM ::值使用array_key_exists。您需要使用unset删除该值。