2010-10-02 17 views
5

Nếu tôi có phần tử biểu mẫu có nhiều trình xác thực gắn liền với nó (3 trong ví dụ này), làm cách nào để sử dụng addErrorMessage để tạo thông báo lỗi tùy chỉnh khi mỗi trình xác thực duy nhất không thành công. Có cách nào để thêm thông điệp tùy chỉnh cho mỗi trình xác thực không?Trình xác thực và thông báo lỗi Zend: addValidator và addErrorMessage

$element = new Zend_Form_Element_Text()... 
$element->.... 
     ->addValidator(...) 
     ->addValidator(...) 
     ->addValidator(...) 
     ->addErrorMessage() 

Trả lời

11

Thông thường nó được thực hiện cho mỗi tin nhắn lỗi validator, không mỗi validator ...

$element->setErrorMessages(array(Zend_Validate_...::CONSTANT => 'New Message')); 

Nhưng tôi thường thích để ghi đè lên tất cả các lỗi của một yếu tố để một đơn

$element->setErrorMessages(array('Single Error')); 

hoặc , nếu tôi cần nó cho mỗi trình xác thực, tác vụ này ...

$validator->setMessages('string error') 

phải ghi đè tất cả lỗi của trình xác thực vào một thư. Tôi không thể tìm thấy tài liệu này ở bất cứ nơi nào, nhưng nó hoạt động cho tôi. Bởi vì điều này, nó có thể không hoạt động cho tất cả các phiên bản?

Với tôi, việc xử lý thông báo lỗi hơi lộn xộn trừ khi bạn muốn ghi đè mọi thông báo lỗi có thể xảy ra, nhưng hy vọng một trong các giải pháp này sẽ phù hợp với bạn.

Chúc mừng

+0

tôi có một số lỗi quảng cáo nhưng sử dụng xác thực đầu tiên không hoạt động –

6

Thêm thông điệp của bạn cùng với trình xác thực như bên dưới. Ví dụ:

->addValidator('StringLength', false, array(0,255,'messages'=>'Cannot be more than 255 chars')) 

->addValidator('NotEmpty', true, array('messages'=>'Cannot be empty')) 
2

Thêm thông điệp của bạn như thế này

-> addValidator ('Alpha', true, mảng (= 'thông điệp'> array ('notAlpha' => "Hãy nhập ký tự chữ cái chỉ trong Tên sản phẩm.
")));

Thêm nhắn validator theo chuỗi lỗi của bạn

+0

Tôi thích xử lý thư được chỉ định qua 'notAlpha'. bạn có thể hướng dẫn tôi đến nơi tôi có thể tìm thấy nhiều số nhận dạng đó cho phần còn lại của trình xác thực không? thanks anyway: ^) – Katia

+0

Bạn tìm thấy những thông báo lỗi này từ tập tin xác thực của nó. chuyển đến bên dưới đường dẫn dự án/thư viện/Zend/Xác thực chọn quy tắc xác thực của bạn, Ở đây bạn tìm thấy danh sách "const" dành cho thông báo lỗi –

0

addErrorMessage ('Tuỳ Thông báo của bạn'); Đây cũng là cách dễ nhất để in thông báo tùy chỉnh.

Các addErrorMessage được định nghĩa bên trong libraray/zend/Form/Elements.php

Hy vọng nó giúp !!

Các vấn đề liên quan