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 に答える