【问题标题】:Make all form validation errors show up at top in symfony?让所有表单验证错误显示在 symfony 的顶部?
【发布时间】:2009-06-23 19:27:25
【问题描述】:

我想我可能在这里遗漏了一些应该比较常见的东西。如何使所有表单验证错误(包括字段绑定错误)显示在表单顶部(全局)?

【问题讨论】:

    标签: php mysql forms symfony1 propel


    【解决方案1】:

    在模板顶部添加类似的内容:

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

    【讨论】:

      【解决方案2】:

      提前

      <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>
      

      【讨论】:

        【解决方案3】:

        如果你和我一样是老派(在 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; ?>
        

        【讨论】:

        • 应该也适用于 1.1+,我没有测试过,但我看不出他们为什么不保持向后兼容性。
        • 感谢您的回答,sjobe。不幸的是,无论出于何种原因,这在 1.2 中都不起作用。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多