Returns an array of field validation error messages.
public getFieldErrors ( ) : |
||
return |
/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\Core\REST\Server\Exceptions\ContentFieldValidationException $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('ErrorMessage'); $statusCode = $this->getStatus(); $visitor->setStatus($statusCode); $visitor->setHeader('Content-Type', $generator->getMediaType('ErrorMessage')); $generator->startValueElement('errorCode', $statusCode); $generator->endValueElement('errorCode'); $generator->startValueElement('errorMessage', $this->httpStatusCodes[$statusCode]); $generator->endValueElement('errorMessage'); $generator->startValueElement('errorDescription', $data->getMessage()); $generator->endValueElement('errorDescription'); $generator->startHashElement('errorDetails'); $generator->startList('fields'); foreach ($data->getFieldErrors() as $fieldTypeId => $translations) { foreach ($translations as $languageCode => $validationErrors) { if (!is_array($validationErrors)) { $validationErrors = [$validationErrors]; } foreach ($validationErrors as $validationError) { $generator->startHashElement('field'); $generator->startAttribute('fieldTypeId', $fieldTypeId); $generator->endAttribute('fieldTypeId'); $generator->startList('errors'); $generator->startHashElement('error'); $generator->startValueElement('type', $validationError->getTarget()); $generator->endValueElement('type'); $translation = $validationError->getTranslatableMessage(); $generator->startValueElement('message', $this->translator->trans($this->translationToString($translation), $translation->values, 'repository_exceptions')); $generator->endValueElement('message'); $generator->endHashElement('error'); $generator->endList('errors'); $generator->endHashElement('field'); } } } $generator->endList('fields'); $generator->endHashElement('errorDetails'); if ($this->debug) { $generator->startValueElement('trace', $data->getTraceAsString()); $generator->endValueElement('trace'); $generator->startValueElement('file', $data->getFile()); $generator->endValueElement('file'); $generator->startValueElement('line', $data->getLine()); $generator->endValueElement('line'); } $generator->endObjectElement('ErrorMessage'); }