如何在Yii中将日期设置为NULL?

slh*_*hck 16 php mysql validation datetime yii

我有一个日期列,通常取值为dd.MM.yyyy.它在模型中的验证规则rules()是:

array('start, end', 'date', 'format' => 'dd.MM.yyyy'),
Run Code Online (Sandbox Code Playgroud)

我正在从CSV文件填充数据库,NULL如果CSV记录为空,我希望能够将日期设置为(即没有).所以,我在做:

if (empty($csv_data)) {
  $user->start = new CDbExpression('NULL');
} else {
  $user->start = $csv_data;
}
Run Code Online (Sandbox Code Playgroud)

但是我收到日期格式无效的错误.这是为什么?

CDateValidator文件说,该allowEmpty属性默认为真,那么它应该能够将其设置为NULL,对不对?请注意,如果我只是将""字符串分配给日期,它会将其转换为0000-00-00 00:00:00时间戳,而不是NULL.

Imr*_*e L 25

在模型中rules():

array('start, end', 'date', 'format' => 'dd.MM.yyyy'),
array('start, end', 'default', 'setOnEmpty' => true, 'value' => null),
Run Code Online (Sandbox Code Playgroud)

也,

if (empty($csv_data)) {
  $user->start = null;
} ...
Run Code Online (Sandbox Code Playgroud)

也应该做的伎俩.