【问题标题】:Kohana ORM insert NULL and not empty stringKohana ORM插入NULL而不是空字符串
【发布时间】:2012-07-18 10:14:30
【问题描述】:

在 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 值无论如何都会被转换成一个空字符串,这不是我想要的行为。 有人知道解决方法吗?我在文档或网络上找不到任何内容...

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 太棒了!我在我的情况下解决了这个问题,但这很高兴以后知道! :)
    【解决方案2】:

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

    【讨论】:

    • 我已经考虑过了,它适用于创建,但不适用于更新,因为取消设置将使 db 值保持不变......
    • 坦白说,缺少这个功能让我很吃惊。
    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多