如此处所示,我想使用 validationResolver 在我的应用程序中动态验证用户输入。因此,我想证明我的控制器中的条件是否为真。如果条件为真,我想用自己的验证器进行验证。
为此,我尝试了:
public function createAction(Object $newObject) {
$TS = $newObject->getSomeProperty();
$ABT = $newObject->getSomeOtherProperty();
if ($TS === 'specialvalue') {
$validatorResolver->createValidator('Your.Package:Foo'));
}
但我(当然)得到一个 500 例外:
#1: Notice: Undefined variable: validatorResolver in /var/www...
请给我一个如何使用$validatorResolver的提示。
我现在这样做了:
public function createAction(Object $newObject) {
$TS = $newObject->getSomeProperty();
$ABT = $newObject->getSomeOtherProperty();
if ($ABT === 'specialvalue') {
$validatorResolver = new TYPO3FlowValidationValidatorResolver();
$customValidator = $validatorResolver->createValidator('Your.Package:Foo');
$result = $customValidator->validate($TS);
if ($result->hasErrors()) {
$this->flashMessageContainer->addMessage(new TYPO3FlowErrorError('Here you can type in the error message!'));
$this->errorAction()->forwardToReferringRequest();
}
}
....
....
}