I have a date column that usually takes values as dd.MM.yyyy
. Its validation rule in the model's rules()
is this:
array('start, end', 'date', 'format' => 'dd.MM.yyyy'),
I'm populating the database from a CSV file, and I'd like to be able to set the date to NULL
(i.e. nothing) if the CSV record is empty. So, I'm doing:
if (empty($csv_data)) {
$user->start = new CDbExpression('NULL');
} else {
$user->start = $csv_data;
}
But I get an error that the date format is invalid. Why is that?
The CDateValidator
documentation says that the allowEmpty
property is true by default, so it should be able to set this to NULL
, right? Note that if I just assing the ""
string to the date, it'll convert it to a 0000-00-00 00:00:00
timestamp, which is not NULL
.
in model rules()
:
array('start, end', 'date', 'format' => 'dd.MM.yyyy'),
array('start, end', 'default', 'setOnEmpty' => true, 'value' => null),
also,
if (empty($csv_data)) {
$user->start = null;
} ...
should do the trick too.