Вы должны иметь возможность использовать базовый валидатор с точки зрения проверки поля не пустым ... но вы должны использовать имя поля «PublishDate», а не «publishDatetimeField».
В целом это, как валидация полностью установлены в SilverStripe ...
class MyDataObject extends DataObject {
static $db = array(
'MyDateField' => 'SS_DateTime',
);
function getCMSValidator() {
return new MyDataObject_Validator();
}
}
class MyDataObject_Validator extends RequiredFields {
function php($data) {
$bRet = parent::php($data);
//do checking here
if (empty($data['MyDateField']))
$this->validationError('MyDateField','MyDateField cannot be empty','required');
return count($this->getErrors());
}
}
вы можете проверить на то, что данные ...
die(var_dump($data));
, и это должно быть строкой в MYSQL формат ... например "2016-03-24 11:41:00"