Настройте формы Symfony и получите больше контроля над процессом проверки

Я использую doctrine:generate-admin для построения CRUD-операций для одной из моих моделей под названием "Alumnos". Я знаю, что Symfony создает представления в /apps/site/modules/alumnos/views, и я пытаюсь настроить поля ввода с помощью Twitter Bootstrap Framework. Файл _form.php имеет этот код:

<?php echo $form['nombres']->renderLabel() ?>
<?php echo $form['nombres']->renderError() ?>
<?php echo $form['nombres'] ?>

Но я хочу добавить (*) к обязательным полям, класс для полей ввода, а также обернуть ошибки внутри <div> теги с правильной разметкой. Как мне этого добиться?

Также (не знаю, лучше ли открыть новый вопрос для этой части) У меня есть шесть полей, и нужно добиться этого:

  • Если первые три поля (меньше упомянутых 1,2,3) заполнены значениями, то проверка проходит
  • Если вторые три поля (за вычетом 4,5,6) заполнены значениями, проход проверки
  • Требуются как минимум три поля или вторые три поля, поэтому во всех случаях 1,2,3 не может быть пустым или 4,5,6 не может быть пустым

Как я справляюсь с этой проверкой?

2 ответа

Решение

Если это только в одной форме, вы можете пойти хакерским путем: заменить, <?php echo $form['nombres']->renderLabel() ?> с HTML, это просто ^^

Для ответа на второй вопрос в форме необходимо указать валидатор, чтобы проверить несколько полей. Вот пример: http://symfony.com/legacy/doc/cookbook/1_2/en/conditional-validator

Может быть, посмотрите в учебнике Jobeet, если есть пример проверки сообщения.

Для первой части вашего вопроса вы должны посмотреть на http://symfony.com/legacy/doc/more-with-symfony/1_4/en/06-Advanced-Forms внизу страницы, где они описывают, как создать новый WidgetFormSchemaFormatter.

Во второй части, как сказал Франсуа, используйте почтовый валидатор или пользовательский валидатор.

Другие вопросы по тегам