如何在表单提交时将Controller Action的错误消息传递给Form。

时间:2013-04-25 09:36:39

标签: zend-framework2

在创建表单时,表单验证很容易。但是如何验证提交的数据并将错误消息传回表单。

例如我有一个密码更改表单,所以我需要验证旧密码并检查新密码和确认密码是否相同,并且在故障阶段,在密码编辑表单上显示消息。

2 个答案:

答案 0 :(得分:1)

你的意思是在你的视图脚本中?

<?php if ($form->getMessages()){
    // alert
    ?>
    <div class="alert alert-error">
        <button class="close" data-dismiss="alert" type="button">×</button>
        <strong><?php echo $this->translate("Are you awake ?"); ?></strong>
        <?php echo $this->translate("Some data are not filled out correctly."); ?>
    </div>       
    <?php
}?>

$ form-&gt; getMessages()

打印错误后

答案 1 :(得分:1)

如果设置正确,表单将为您执行此操作。表单将运行验证检查,然后您可以使用formElementErrors视图助手来消除错误。 你能粘贴一些代码来设置你的表单吗?

表单视图中显示验证错误的示例:

<?php $form->prepare() ?>
<?php echo $this->form()->openTag($form); ?>
    <?php foreach($form->getElements() as $element): ?>
        <div class="control-group">
        <?php /* @var $element \Zend\From\Element */ ?>
        <?php if($element->getLabel()): ?>
             <?php echo $this->formLabel($element) ?>
        <?php endif ?>
        <?php // Show any validation errors for this element ?>
        <?php echo $this->formElementErrors($element); ?>
        <?php echo $this->formElement($element) ?>
        </div>
    <?php endforeach ?>
<?php echo $this->form()->closeTag() ?>