【发布时间】:2013-01-28 19:03:41
【问题描述】:
我有一个日期列,通常取值为dd.MM.yyyy。它在模型的rules() 中的验证规则是这样的:
array('start, end', 'date', 'format' => 'dd.MM.yyyy'),
我正在从 CSV 文件填充数据库,如果 CSV 记录为空,我希望能够将日期设置为 NULL(即什么都没有)。所以,我在做:
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。
【问题讨论】:
-
我不是 Yii 方面的专家,但是查看文档,您可能可以使用这种方法来检查值是否为 null()? yiiframework.com/doc/api/1.1/CValidator#except-detail
-
@dInGd0nG 很有趣,这解释了失败,谢谢。
-
@Jason 谢谢,但据我所知,这仅适用于所谓的场景,即您无法检查传递的实际值,您只能说:Don'在创建新用户或更新用户等时应用此规则。
标签: php mysql validation datetime yii