2012-08-08 110 views
0

似乎使用addErrorMessage()会覆盖所有其他验证错误。Zend Framework中的链接错误消息

例如,我创建了一个自定义手机元素。我还创建了一个自定义验证类来检查自定义业务规则。 我希望它在不符合自定义业务规则时打印出来自My_Validate_BusinessPhone的错误消息。但它始终在addErrorMessage()中打印消息集。这是正常的行为?有没有办法链接错误消息?

$phone = new My_Form_Element_Phone('phone'); 
$phone->setRequired(TRUE) 
    ->setAttrib('id', 'phone') 
    ->addErrorMessage('Please provide a valid phone number') 
    ->addValidator(new My_Validate_BusinessPhone); 

我在此先谢谢您。

回答

0

消息被覆盖,因为您将消息设置为表单元素而不是验证器。所以这就是它的工作原理:首先,获取你的表单元素。在你的情况下,只需使用它。其次,通过名称获取验证者(我不知道它是如何在这里被强行调用的,例如它可能是'notEmpty'),第三,为此验证者添加消息。

$phone->getValidator('yourValidatorsName')->setMessage('Please provide a valid phone number'); 

我在我自己的脚本只是测试这一点,但我希望它应该工作;-)