我有一個日期列,通常取值爲dd.MM.yyyy
。在模型的rules()
它的驗證規則是這樣的:如何在Yii中將日期設置爲NULL?
array('start, end', 'date', 'format' => 'dd.MM.yyyy'),
我從一個CSV文件填充數據庫,我希望能夠將日期設置爲NULL
(即沒有),如果CSV記錄是空的。所以,我在做:
if (empty($csv_data)) {
$user->start = new CDbExpression('NULL');
} else {
$user->start = $csv_data;
}
但我得到一個錯誤,日期格式無效。這是爲什麼?
CDateValidator
documentation表示allowEmpty
屬性默認爲true,所以它應該能夠將其設置爲NULL
,對吧?請注意,如果我只是將""
字符串分配給日期,則會將其轉換爲0000-00-00 00:00:00
時間戳,而不是NULL
。
https://github.com/yiisoft/yii/issues/2056 – dInGd0nG 2013-02-13 09:25:54
我不是Yii的專家,但看着文檔你可能可以解決它使用這種方法來檢查值是否爲空()? http://www.yiiframework.com/doc/api/1.1/CValidator#except-detail – Jason 2013-02-13 09:28:33
@ dInGd0nG有趣的是,這解釋了失敗,謝謝。 – slhck 2013-02-13 09:29:07