2016-07-07 73 views
0

一个成员函数addError()我有一个AJAX调用传递到控制器 编辑的流体form.On完成我做EmailAddressValidator()的一个实例我的代码如下TYPO3的验证回报呼吁对空

给出
$validate = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator'); 
$result = $validate->isValid('[email protected]'); 

,如果邮件是在正确的format.But返回

调用一个成员函数addError()

没有返回

如果格式不正确。

回答

1

(已更新)

问题是如何调用验证器。您需要调用方法validate,而不是isValid

所以这应该工作:

$validate = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator'); 
$result = $validate->validate('[email protected]'); 

$resultTYPO3\CMS\Extbase\Error\Result一个实例,您可以使用它的方法hasErrors检查邮件是有效的。

+0

TYPO3 \\ CMS \\ Extbase \\ Object \\ ObjectManager无法以反斜杠启动。因此我删除了反斜杠并运行代码。但存在相同的问题。 –

+1

好吧,你是对的......在这种情况下,问题不在于DI(这通常是在'null'上调用成员时常见的问题),但是如何调用验证器...我将编辑答案。 – Jost

+0

我的新代码是:$ validate = \ TYPO3 \ CMS \ Core \ Utility \ GeneralUtility :: makeInstance('TYPO3 \\ CMS \\ Extbase \\ Validation \\ Validator \\ EmailAddressValidator'); $ result = $ validate-> isValid('xyzgmail.com'); $ error = $ result-> hasError();但同样的错误发生 –