如何在TYPO3 CMS 7 +中编写验证器?

时间:2016-07-12 14:38:40

标签: php typo3 extbase typo3-7.6.x

我即将在TYPO3 CMS 7.6.x扩展中编写验证器。我使用现代MVC struktur包括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;    
    }

}

在Model Class中我添加了验证行:

/**
 * testattribute
 *
 * @var string
 * @validate Myown
 */
protected $testattribute = '';

在安装工具中清除完整缓存后,没有任何反应。我仍然可以使用testattribute的任何值创建此模型的对象。

然后我查看了TCA配置并发现:

'eval' => 'trim,required'

有没有办法像TYPO3 Fluid一样使用模型的验证呢?或者我是否必须像在TYPO3 CMS 4中那样编写验证器?

1 个答案:

答案 0 :(得分:1)

我的错误。我必须提供完整的合格类名,然后才能正常工作。

/**
 * testattribute
 *
 * @var string
 * @validate NotEmpty, \My\Extension\Validation\Validator\MyownValidator
 */
protected $testattribute = '';

至少在前端它显示验证错误。 有没有办法在TCA中使用它?