0

似乎使用 addErrorMessage() 会覆盖所有其他验证错误。

例如,我创建了一个自定义电话元素。我还创建了一个自定义验证类来检查自定义业务规则。我希望它在不符合自定义业务规则时打印出来自 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 );

我提前谢谢你。

4

1 回答 1

0

消息被覆盖,因为您将消息设置为表单元素而不是验证器。这就是它应该如何工作的:首先,获取您的表单元素。在您的情况下,只需使用它。其次,按名称获取验证器(我不知道这里如何准确地调用它,例如它可能是 'notEmpty'),第三,为该验证器添加您的消息。

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

我刚刚在自己的脚本中对此进行了测试,但我希望它应该可以工作;-)

于 2012-08-09T07:52:49.950 回答