Многомерный обход массива с проверкой формы Symfony

У меня есть массив многомерного массива, который представляет мою форму каждый уровень представляет дочернюю форму, пока вы не доберетесь до поля.

Я хочу иметь возможность пересечь этот массив, отслеживая, где из Где я был, так что я не иду по тому же маршруту более одного раза.

Каждый ключ массива является по существу a $form->get($key). Есть несколько полей, которые названы одинаково, но находятся вниз по разным маршрутам (выделено красным цветом на рисунке ниже).

Есть ли простой способ достичь этого?

Введите описание изображения здесь

Спасибо

1 ответ

  1. Это мое решение. Я создал карту формы, которая состоит из числа полей, каждое с дочерними массивами для пути к элементу и ошибки.

    Затем я делаю над ними петлю и передаю их через mapViolationметод Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationMapperSymfonys.

    Вот полный класс:
    https://gist.github.com/linxlad/3ec76c181f717fba532bf43484b7c970