#forms #symfony1
#формы #symfony1
Вопрос:
Я пытаюсь отобразить поле строки в шаблоне с некоторыми дополнительными стилями, такими как этот:
<?php echo $form['email']->renderRow(array('class' => 'text')) ?>
<?php echo $form['email']->renderError() ?>
Проблема возникает, когда моя форма не проверяет это поле … затем она отображает сообщение об ошибке 2 раза!, т. е. renderRow отображает одну строку ErrorMsg, а renderError делает это снова… Как я могу запретить renderRow отображать сообщение об ошибке?
Если я просто сделаю это, то это сработает:
<?php echo $form['email'] ?>
Но в этом случае я не могу оформить поле так, как хочу….
Спасибо!
Ответ №1:
Я почти уверен, что это также справедливо для 1.2. Вместо использования renderRow используйте что-то вроде этого:
<?php echo $form['FormElementName']->renderLabel() ?> //display form element label
<?php echo $form['FormElementName']->renderError() ?> //display form element error (if exist)
<?php echo $form['FormElementName']->render(array('class' => 'text')); ?> //display form element
renderRow выполняет их все сразу.
РЕДАКТИРОВАТЬ из комментариев (Flask) — добавлено ->render(array(‘class’ => ‘text’));
Комментарии:
1. Спасибо! Но как я могу добавить стиль к компоненту my form?
2. Вы можете указать атрибуты HTML в своем виджете. Таким образом, вы могли бы указать атрибут HTML ‘class’, а затем использовать его в вашем CSS для применения стиля. Более подробную информацию можно найти здесь: symfony-project.org/forms/1_2/en /…
3. используйте
<?php echo $form['FormElementName']->render(array('class' => 'text')); ?>
вместо<?php echo $form['FormElementName'] ?>