Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller Typo3验证器返回对成员函数addError()的调用,该函数为null_Model View Controller_Typo3_Extbase - Fatal编程技术网

Model view controller Typo3验证器返回对成员函数addError()的调用,该函数为null

Model view controller Typo3验证器返回对成员函数addError()的调用,该函数为null,model-view-controller,typo3,extbase,Model View Controller,Typo3,Extbase,我有一个流动的表单。编辑完成后,一个ajax调用被传递给控制器 我创建了一个EmailAddressValidator()的实例。下面给出了我的代码 $validate = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator'); $result = $validate->isValid('xyz@gm

我有一个流动的表单。编辑完成后,一个ajax调用被传递给控制器 我创建了一个EmailAddressValidator()的实例。下面给出了我的代码

$validate =  \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator');
$result = $validate->isValid('xyz@gmail.com');
如果电子邮件格式正确,它将不返回任何内容。但它会返回

调用成员函数addError()

如果格式不正确。

(已更新)

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

因此,这应该是可行的:

$validate =  \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator');
$result = $validate->validate('xyz@gmail.com');
$result
是的一个实例,您可以使用其上的方法
hasrerrors
检查邮件是否有效。

(已更新)

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

因此,这应该是可行的:

$validate =  \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator');
$result = $validate->validate('xyz@gmail.com');

$result
是的一个实例,您可以在其上使用方法
hasrerrors
检查邮件是否有效。

TYPO3\\CMS\\Extbase\\Object\\ObjectManager无法以反斜杠开头。因此,我删除了反斜杠并运行代码。但也存在相同的问题。好的,您是对的。。。在这种情况下,问题不在于DI(这通常是/通常是在
null
上调用成员时的问题),而是如何调用验证器。。。我将编辑答案。我的新代码是:$validate=\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator')$结果=$validate->isValid('xyzgmail.com')$error=$result->hasrerror();但是同样的错误也会发生,您需要调用
validate
,而不是
isValid
$result=$validate->validate(…)
validate
在内部调用
isValid
,但在这样做之前创建
$result
,然后使用
isValid
。它是
hasErrors
(在答案中修复了它),复数形式-检查答案中的链接,您也可以从中获取错误消息。TYPO3\\CMS\\Extbase\\Object\\ObjectManager无法以反斜杠开头。因此,我删除了反斜杠并运行代码。但存在相同的问题。好的,您是对的。。。在这种情况下,问题不在于DI(这通常是/通常是在
null
上调用成员时的问题),而是如何调用验证器。。。我将编辑答案。我的新代码是:$validate=\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Validation\\Validator\\EmailAddressValidator')$结果=$validate->isValid('xyzgmail.com')$error=$result->hasrerror();但是同样的错误也会发生,您需要调用
validate
,而不是
isValid
$result=$validate->validate(…)
validate
在内部调用
isValid
,但在这样做之前创建
$result
,然后使用
isValid
。它是
hasrerrors
(在答案中修复了它),复数形式-检查答案中的链接,也可以从中获取错误消息。