проблема с сообщением об ошибке symfony 1.2 forms renderRow

#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'] ?>