2016-03-24 2 views
1

Примечание: версия 3,1SilverStripe поля проверки в CMS

enter image description here

Пытаясь подтвердить ввод этих полей с CMS:

  • дата истечения срока действия должна быть после даты опубликования.

Я пробовал даже простую проверку (обязательно), но не работает.

Я могу манипулировать значениями и сравнивать их, но я не могу получить к ним доступ.

Любые идеи, приветствуются.

ответ

1

Вы должны иметь возможность использовать базовый валидатор с точки зрения проверки поля не пустым ... но вы должны использовать имя поля «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"

Смежные вопросы