2012-08-08 111 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'); 

我在我自己的腳本只是測試這一點,但我希望它應該工作;-)