【问题标题】:Equivalent of addError in zend 2?相当于zend 2中的addError?
【发布时间】:2013-01-04 20:08:33
【问题描述】:

我查看了 API,但似乎找不到:Zend 2 中 Zend\Form\Element->addError($message) 的等价物是什么?或者,我将如何完成同样的事情?

我有一个注册字段,其中用户名必须是唯一的,所以我在等待数据库抛出异常,然后标记用户名字段。

【问题讨论】:

    标签: forms validation unique zend-framework2


    【解决方案1】:
    $formElement->setMessges(array(
        'errorMessageKey' => 'Something strange happened, slap the admin!'
    ));
    

    【讨论】:

    • 如何设置有效标志?它似乎会删除以前的消息或被删除(取决于是否首先调用了表单验证或 setMessage)
    • 你使用的是什么验证器?
    • 我只是在做随机测试——比如 setMessages(array('random message')) 和调试变量。所以我将有一个 StringLength 验证器,如果我在设置消息后进行验证,则消息不会显示。如果我设置了消息,但 StringLength 通过了,isValid 为真。但我想添加一条错误消息,并设置有效标志(可以在 zend 1 中使用 addError 轻松完成)
    • 我不确定我是否理解您的问题。当您使用默认验证类验证表单时,它们要么失败,要么成功。您想在默认验证失败或通过时添加自定义错误消息?
    • 如果我自己的验证失败,我想附加一条自定义错误消息
    【解决方案2】:

    我这样做是为了检查电子邮件是否存在于控制器中。

     $postedarray  = $form->getData();
     $usersnameexist = $this->getUsersTable()->ISuseravailable($postedarray['email']);
     if($usersnameexist)
     {
        return array(
           'form' => $form,
           'errorMsg'=> 'Username already available please use other Username');
     }
    

    然后在查看文件中

    <?php echo $this->formRow($form->get('email'));?>
    <?php  if($this->errorMsg) { ?> 
         <ul>
              <li><?php echo $this->errorMsg; ?></li>
         </ul>
    <?php 
    } 
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多