微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Zend Framework Validator消息错误

如何解决Zend Framework Validator消息错误

| 我的表格连接了验证程序错误翻译器
  class My_Lib_Forms_Form extends Zend_Form {

    public function init()

   {
       parent::init();

       $translator = new Zend_Translate(\'array\',APPLICATION_PATH . \'/languages/errors.PHP\');

       // Задаем объект переводчика для формы
       $this->setTranslator($translator);    
   }
}
这是验证器错误翻译器代码
<?PHP
return $errors = array(
   Zend_Validate_Alnum::STRING_EMPTY => \"Поле не может быть пустым\",Zend_Validate_Date::INVALID_DATE => \'Значение не соответствует формату год-месяц-день\',Zend_Validate_Date::INVALID => \'Неверная дата\',Zend_Validate_Date::FALSEFORMAT => \'Значение не соответствует указанному формату\',Zend_Validate_EmailAddress::INVALID_FORMAT => \"asdasd\",Zend_Validate_EmailAddress::INVALID_FORMAT => \"Не верный формат адреса электронной почты. Введите почту в формате local-part@hostname\",Zend_Validate_EmailAddress::INVALID_HOSTNAME => \"\'%hostname%\' не верный домен для адреса электронной почты \'%value%\'\",Zend_Validate_EmailAddress::INVALID_MX_RECORD => \"\'%hostname%\' не имеет MX-записи об адресе электронной почты \'%value%\'\",Zend_Validate_EmailAddress::DOT_ATOM => \"\'%localPart%\' не соответствует формату dot-atom\",Zend_Validate_EmailAddress::QUOTED_STRING => \"\'%localPart%\' не соответствует формату quoted-string\",Zend_Validate_EmailAddress::INVALID_LOCAL_PART => \"\'%localPart%\' не верное имя для адреса электронной почты \'%value%\'\",Zend_Validate_Int::NOT_INT => \'Значение не является целочисленным значением\',Zend_Validate_NotEmpty::IS_EMPTY => \'Поле не может быть пустым\',Zend_Validate_StringLength::TOO_SHORT => \'Длина введённого значения меньше чем %min% символов\',Zend_Validate_StringLength::TOO_LONG => \'Длина введённого значения больше чем %max% символов\',My_Lib_Validate_EqualInputs::NOT_EQUAL => \'Пароли не совпадают\',My_Lib_Validate_Password::INVALID => \'Не верный формат пароля\',My_Lib_Validate_Password::INVALID_LENGTH => \'Длина пароля должна быть от 7 до 30ти символов\',Zend_Captcha_Word::BAD_CAPTCHA => \'Вы указали не верные символы\',Zend_Captcha_Word::MISSING_VALUE => \'Поле не может быть пустым\',\'userAgreement\' => \'Регистрируясь вы должны согласится с правилами\',);
如何更改自定义元素的验证错误消息? 我正在尝试通过以下方式进行操作:
$validatorNotEmpty = new Zend_Validate_NotEmpty();
$validatorNotEmpty->setMessages(array(
           Zend_Validate_NotEmpty::IS_EMPTY  => \'agreeRules\'));
$userAgreement = new Zend_Form_Element_CheckBox(\'userAgreement\',array(
           \'required\'    => true,\'label\'       => \'Регистрируясь,вы должны согласиться с правилами:\',\'validators\'  => array($validatorNotEmpty),));
而且也是这样:
$validatorNotEmpty = new Zend_Validate_NotEmpty();
$validatorNotEmpty->setMessage(  \'Регистрируясь вы должны согласится с правилами\',Zend_Validate_NotEmpty::IS_EMPTY);
$userAgreement = new Zend_Form_Element_CheckBox(\'userAgreement\',));
无论如何,我从翻译器文件获取消息,而不是自定义的书面消息文本。     

解决方法

        尝试
   $validatorNotEmpty->setMessages(array(\'agreeRules\')); 
它会覆盖所有消息,但是在IS_EMPTY情况下,它实际上是一条消息 您可以尝试其他方法,按价值转换 删除
Zend_Validate_NotEmpty::IS_EMPTY => \'Поле не может быть пустым\',
$errors=array(
 //values
 \'Value is required and cannot be empty\' = > \'My translate\',\'agreeRules\' => \'My rules\'
);
然后
$validatorNotEmpty->setMessages(array(
       Zend_Validate_NotEmpty::IS_EMPTY  => \'agreeRules\'));
现在您的翻译得到了文字并进行了翻译, 否则,翻译人员使用\'notEmpty \'(
Zend_Validate_NotEmpty::IS_EMPTY
是一个字符串)作为翻译键,而忽略文本'agreeRules \'     ,        您可以在添加表单元素后编写此代码
$form->formElementName->setDisableTranslator(true);
它将为您的元素禁用翻译     ,        请尝试以下方法添加元素。
$this->addElement(

          \'checkbox\',\'userAgreement\',array(
    \'label\'      => \'Регистрируясь,вы должны согласиться с правилами:\',\'required\'   => true,\'validators\' => array(
        array(\'NotEmpty\',true,array( \'messages\' => array( Zend_Validate_NotEmpty::IS_EMPTY => \'agreeRules\' ) ) ),)
));
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?