Symfony2 формирует настраиваемые метки повторяющихся элементов

Я использую Symfony2 и CraueFormFlowBundle для создания многоступенчатой ​​формы. Все идет хорошо, за исключением моего повторного электронного письма. Ради себя я не могу найти, как наклеить нужные мне ярлыки. Я сам визуализирую форму в представлении Twig, используя form_widget (...) и пишу метки. Я все позиционирую так, как хочет мой клиент. Теперь он хочет видеть метки электронной почты как «Электронная почта *» и «Подтвердить электронную почту *» (звездочки, поскольку они необходимы). Если я визуализирую повторяющиеся элементы с помощью form_row (), ошибки больше не отображаются в форме (но у меня есть контроль над метками, привязка). Единственный способ отображения ошибок (не спрашивайте меня, почему) - использовать form_widget (form.giver.email), который указывает на весь повторяющийся объект элемента. Проблема в том, что использование form_widget для рендеринга всего повторяющегося элемента не дает мне возможности контролировать метки.

При визуализации всего повторяющегося элемента он печатает этикетки с использованием параметров «first_name» и «second_name». Я не могу поставить в этих параметрах заглавные буквы, тире или звездочки по понятным причинам. Если я попытаюсь установить метку в массиве параметров, эта метка будет передана в оба поля, как описано в документации Symfony2 ...

Я пробовал печатать с использованием «.first» и «.second» в twig, но я получить сообщение об ошибке, указывающее, что они не существуют в FormView.

Теперь все, что мне нужно, это возможность установить две метки по отдельности! Вот мой текущий код:

$builder->add('email', 'repeated', array(
        'type' => 'email',
        'first_name' => 'email',
        'second_name' => 'confirm',
        'invalid_message' => 'The e-mails you provided did not match.',
        'error_bubbling' => false
    ));

При этом метки печатаются как «электронная почта» и «подтвердить». Здесь используется массив «options»:

$builder->add('email', 'repeated', array(
        'type' => 'email',
        'first_name' => 'email',
        'second_name' => 'confirm',
        'invalid_message' => 'The e-mails you provided did not match.',
        'error_bubbling' => false,
        'options' => array(
            'label' => "TESTTT"
        ),
    ));

Это напечатает метку «TESTTT» в обоих повторяющихся полях. Что я могу с этим поделать? Как упоминалось выше, использование form_row () не отображает ошибки при отправке формы, если электронные письма не равны или если они пустые. Поэтому я ограничен использованием form_widget () и рендерингом всего повторяющегося объекта.

Заранее благодарим за уделенное время.

11
задан doydoy44 6 September 2016 в 14:01
поделиться