Я собираюсь написать валидатор в моем расширении TYPO3 CMS 7.6.x. Я использую современный MVC Structur, включая Fluid (поэтому не старая система pi1). Вот мой тестовый валидатор (MyownValidator.php):
namespace My\Extension\Validation\Validator;
/**
* MyownValidator
*/
class MyownValidator extends \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator {
/**
* ...
*/
public function isValid($data){
if( $data != 'hello world' ){
$this->addError('ERRORMESSAGE', 1468329929);
return FALSE;
}
return TRUE;
}
}
И в классе модели я добавляю строку проверки:
/**
* testattribute
*
* @var string
* @validate Myown
*/
protected $testattribute = '';
После очистки всего кэша в инструменте установки ничего не происходит. Я все еще могу создавать объекты этой модели с любым значением для testattribute.
А потом я посмотрел в конфигурации TCA и обнаружил, что:
'eval' => 'trim,required'
Есть ли способ использовать валидацию моделей, как TYPO3 Fluid? Или я должен написать валидаторы, как в TYPO3 CMS 4?
Виноват. Я должен дать полное имя класса, а затем он работает нормально.
/**
* testattribute
*
* @var string
* @validate NotEmpty, \My\Extension\Validation\Validator\MyownValidator
*/
protected $testattribute = '';
Ну, по крайней мере, в переднем конце это показывает ошибку проверки.
Есть ли способ использовать его в TCA?
Других решений пока нет …