使所有表单验证错误都显示在symfony的顶部?

时间:2009-06-23 19:27:25

标签: php mysql forms symfony1 propel

我想我可能会遗漏一些相对常见的东西。如何将所有表单验证错误(包括字段绑定错误)显示在表单顶部(全局)?

3 个答案:

答案 0 :(得分:5)

在模板顶部添加以下内容:

foreach($form->getWidgetSchema()->getPositions() as $widgetName)
{
  echo $form[$widgetName]->renderError();
}

答案 1 :(得分:1)

提前

<ul>
  <?php foreach($form->getWidgetSchema()->getPositions() as $widgetName): ?>
    <?php if($form[$widgetName]->hasError()): ?>
    <li><?php echo $form[$widgetName]->renderLabelName().': '.__($form[$widgetName]->getError()->getMessageFormat()); ?></li>
    <?php endif; ?>
  <?php endforeach;?>
</ul>

答案 2 :(得分:0)

如果你像我这样的老派(在Symfony 1.1之前),试试

<?php if ($sf_request->hasErrors()): ?>
  <p>Please correct the following errors and try again:</p>
  <ul>
  <?php foreach($sf_request->getErrors() as $name => $error): ?>
    <li><?php echo $error ?></li>
  <?php endforeach; ?>
  </ul>
<?php endif; ?>