Как получить этот полный propertyPath? Это нужно для добавления случаев проверки в jQuery, потому что я переписал унаследованное приложение в новое приложение SF4.
Odx2ParameterCollectionType - это коллекция с динамическими полями.
Есть ли способ получить ошибки проверки? Может быть, у вас есть другие решения, как с этим работать?
protected function renderFormErrors(FormInterface $form): JsonResponse
{
$errors = [];
foreach ($form->getErrors(true) as $error) {
$errors[$error->getOrigin()->getName()] = $error->getMessage();
}
return $this->json([
self::RETURN_PARAMETER_STATUS => Response::HTTP_INTERNAL_SERVER_ERROR,
self::RETURN_PARAMETER_ERRORS => $errors
]);
}
Фактический:
{
"status": 500,
"errors": {
"udsId": "This value should not be blank."
}
}
Ожидаемый:
{
"status": 500,
"errors": {
"Odx2ParameterCollectionType[parameters][5][udsId]": "This value should not be blank."
}
}
EDIT:
Хорошо, я понял это, но пока у меня есть одна недостающая вещь - индекс сбора, это мой код:
foreach ($form->all() as $name => $child) {
if (!$child->isValid()) {
foreach ($child->getErrors(true) as $error) {
$errors[(string) $form->getPropertyPath()][$name][$error->getOrigin()->getName()] = $error->getMessage();
}
}
}