2012-07-19 76 views
2

在Kohana的3.2,當您覆蓋ORM的功能「價值」,然後像做:Kohana的ORM插入NULL而不是空字符串

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

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

    return parent::values($values); 
} 

NULL值將被改造成一個空字符串無論如何,這不是我想要的行爲。 任何人都知道解決方法?我在文檔或網上找不到任何東西...

回答

4

我發現了這個答案。只需使用一個過濾器在你的模型,像這樣: -

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

太棒了!我在我的情況下工作過,但以後很容易知道! :) – Piero 2012-09-27 08:07:35

1

這是因爲後來的ORM :: values使用array_key_exists。您需要使用unset刪除該值。

+1

我曾想過這一點,它的工作原理上創建,但不是在更新,因爲解封將離開DB值不變... – Piero 2012-07-19 16:48:05

+0

缺乏這個功能對我來說非常坦率地說是令人驚訝的。 – 2012-09-26 19:26:29

相關問題