2

在 Kohana 3.2 中,当您覆盖 ORM 的函数“值”时,然后执行以下操作:

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

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

  return parent::values($values);
}

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

4

2 回答 2

5

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

public function filters()
{
  return array(
    'initial_assessment_date' => array(
      array(function($value) {
        return (!$value) ? NULL : $value;
      })
    )
  );
}
于 2012-09-26T19:52:13.497 回答
1

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

于 2012-07-19T09:03:54.503 回答