* * * * * * * * *

{error.code}: {error}

*
*
*
* ``` * * @see https://docs.typo3.org/permalink/t3viewhelper:typo3-fluid-form-validationresults */ final class ValidationResultsViewHelper extends AbstractViewHelper { /** * As this ViewHelper renders HTML, the output must not be escaped. * * @var bool */ protected $escapeOutput = false; public function initializeArguments(): void { $this->registerArgument('for', 'string', 'The name of the error name (e.g. argument name or property name). This can also be a property path (like blog.title), and will then only display the validation errors of that property.', false, ''); $this->registerArgument('as', 'string', 'The name of the variable to store the current error', false, 'validationResults'); } public function render(): string { $for = $this->arguments['for']; $as = $this->arguments['as']; if (!$this->renderingContext->hasAttribute(ServerRequestInterface::class) || !$this->renderingContext->getAttribute(ServerRequestInterface::class) instanceof RequestInterface ) { throw new \RuntimeException('ValidationResultsViewHelper needs an extbase request to work.', 1724244193); } $extbaseRequestParameters = $this->renderingContext->getAttribute(ServerRequestInterface::class)->getAttribute('extbase'); $validationResults = $extbaseRequestParameters->getOriginalRequestMappingResults(); if ($validationResults !== null && $for !== '') { $validationResults = $validationResults->forProperty($for); } $variableProvider = new ScopedVariableProvider($this->renderingContext->getVariableProvider(), new StandardVariableProvider([$as => $validationResults])); $this->renderingContext->setVariableProvider($variableProvider); $output = (string)$this->renderChildren(); $this->renderingContext->setVariableProvider($variableProvider->getGlobalVariableProvider()); return $output; } }