【问题标题】:Zend validators and error messages: addValidator and addErrorMessageZend 验证器和错误消息:addValidator 和 addErrorMessage
【发布时间】:2011-04-20 04:17:46
【问题描述】:

如果我有一个附加了多个验证器的表单元素(本例中为 3 个),当每个唯一验证器失败时,我将如何使用 addErrorMessage 创建自定义错误消息。有没有办法为每个验证器添加自定义消息?

$element = new Zend_Form_Element_Text()...
$element->....
        ->addValidator(...)
        ->addValidator(...)
        ->addValidator(...)
        ->addErrorMessage()

【问题讨论】:

    标签: php zend-framework zend-form zend-form-element


    【解决方案1】:

    通常它是根据验证器错误消息完成的,而不是每个验证器...

    $element->setErrorMessages(array(Zend_Validate_...::CONSTANT => 'New Message'));
    

    但我通常更喜欢将一个元素的所有错误覆盖为单个

    $element->setErrorMessages(array('Single Error'));
    

    或者,如果我每个验证器都需要它,这可行...

    $validator->setMessages('string error')
    

    应该将验证器的所有错误覆盖为单个消息。我在任何地方都找不到这个文档,但它对我有用。因此,它可能不适用于所有版本?

    对我来说,错误消息处理有点混乱,除非您想覆盖所有可能的错误消息,但希望这些解决方案中的一个对您有用。

    干杯

    【讨论】:

    • 我有一些附加错误,但使用第一个验证不起作用
    【解决方案2】:

    将您的消息与验证器一起添加如下。 示例:

    ->addValidator('StringLength', false, array(0,255,'messages'=>'Cannot be more than 255 chars'))
    
    ->addValidator('NotEmpty', true, array('messages'=>'Cannot be empty'))
    

    【讨论】:

      【解决方案3】:

      像这样添加你的消息

      ->addValidator('Alpha', true, array('messages' => array('notAlpha' => "请在产品名称中输入字母字符。
      ")));强>

      根据您的错误字符串添加验证器消息

      【讨论】:

      • 我喜欢通过 'notAlpha' 处理指定的消息。你能指导我到哪里可以找到其他验证器的更多标识符吗?无论如何谢谢:^)
      • 您可以从其验证文件中找到这些错误消息变量。转到下面的路径 project/library/Zend/Validate 选择您的验证规则,在这里您可以找到用于错误消息的“const”列表
      【解决方案4】:

      addErrorMessage('你的自定义消息');这也是打印自定义消息的最简单方法。

      addErrorMessage 在 libraray/zend/Form/Elements.php 中定义

      希望对你有帮助!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多