php - php Zend 框架:设置需要的Zend_Form_Element表单字段,如何更改用于确保该元素不是空白的确认器

  显示原文与译文双语对照的内容
56 1

使用 Zend_Form 时,验证输入是否为空的唯一方法是执行以下操作


$element->setRequired(true);



如果未设置这里元素,而且元素是空的,则在元素上看上去没有运行验证。

如果我使用 setRequired(),那么元素会自动给出标准的NotEmpty验证器。 问题是,这个验证器的错误消息很糟糕,"值为空,但需要 非空 值"。 我想更改这里消息。 现在我已经通过改变 Zend_Validate_NotEmpty 类来完成这个操作,但是这是一个比较复杂的。

我希望能够使用我自己的类( 从 Zend_Validate_NotEmpty 派生) 来执行非空检查。

时间:

94 3

我这样做的方式是( ZF 1.5 ):


$name = new Zend_Form_Element_Text('name');


$name->setLabel('Full Name: ')


 ->setRequired(true)


 ->addFilter('StripTags')


 ->addFilter('StringTrim')


 ->addValidator($MyNotEmpty);



所以 addValidator() 是有趣的部分。 消息在"errormessage文件"中设置( 将所有自定义消息打包在一个文件中):


$MyNotEmpty = new Zend_Validate_NotEmpty();


$MyNotEmpty->setMessage($trans->translate('err.IS_EMPTY'),Zend_Validate_NotEmpty::IS_EMPTY);



希望这有帮助。

原作者:
134 1

如果不存在,则 setRequired(true) 将通知 isValid() 添加一个非空验证( ) 。 由于在调用 isValid() 之前不存在这里验证,因此无法设置消息。

在调用 isValid() 之前,最简单的解决方案是手动添加一个非空验证,并将它的设置为相应的消息。


$username = new Zend_Form_Element_Text('username');


$username->setRequired(true)


 ->addValidator('NotEmpty', true, array('messages' => array('isEmpty' => 'Empty!')));



118 1

添加NotEmpty验证程序,并添加你自己的消息:


//In the form class:


$username = $this->createElement('text', 'username');


$username->setRequired();//Note that this seems to be required!


$username->addValidator('NotEmpty', true, array(


 'messages' => array(


 'isEmpty' => 'my localized err msg')));



注意:除非在元素上同时调用了,否则NotEmpty验证程序似乎不会触发

在控制器( 或者任何地方) 中,调用 $form-> setTranslator ( $yourTranslator ) 以将错误消息本地化为页面。

原作者:
83 2

更改错误消息

原作者:
140 2

我可以看到改变了错误消息of无法更改特定错误的消息。 这里外,该手册使它看起来像属于Zend_Form的函数,但在使用Zend_Form实例时找不到方法。

使用的例子是非常有用的。

原作者:
...