在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值将转换为空字符串,这不是我想要的行为。 有人知道解决方法吗?我在文档或网络上找不到任何内容......
答案 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删除该值。