Các thông báo khi Valid Form được hiện thị như hình:
Mặc định thì MVC của ZF dùng một Helper để Render các thông báo này. Bạn chỉ việc thay đổi Helper đó theo cách của mình.
Helper thực hiện chức năng đó của ZF là
\Zend\Form\View\Helper\FormElementErrors
Được ZF khởi tạo với View Helpe rManager
của MVC với key: formelementerrors
Để tùy chọn nó bạn kế thừa FormElemenErrors
vào Module của bạn và thay forelementerrors
tới Helper đó.
Viết lại FormElementErrrors
Trong module của bạn tạo FormElementErrors.php với nội dung như sau:
file: YourModule/View/Helper/FormElementErrors.php
<? namespace ...; use \Zend\Form\View\Helper\FormElementErrors as OriginalFormElementErrors; class FormElementErrors extends OriginalFormElementErrors { protected $messageCloseString = '</li></ul>'; protected $messageOpenFormat = '<ul><li class="text-alert">'; protected $messageSeparatorString = '</li><li class="text-alert">'; }
Bạn tùy chọn hiện thị bằng cách thay đổi nội dung các biến sao cho phù hợp. Ở ví dụ trên thêm một class CSS vào ul.
Nếu không thích dùng UL, LI có thể thay bằng:
protected $messageCloseString = '</div></div>'; protected $messageOpenFormat = '<div%s class="your-css-class"><div>'; protected $messageSeparatorString = '</div><div>';
Vây là phần code của FormElementErrors là xong
Bước tiếp theo là cho hệ thống biết bạn sử dụng FormElementErorrors mới này chứ không phải mặc định của ZF.
Mở module.config.php của Module của bạn ra, thêm vào nội dung sau:
<? return array( //................ 'view_helpers'=>array( 'invokables' => array( 'Zend\Form\View\Helper\FormElementErrors' => '\YourModule\View\Helper\FormElementErrors' ), ), //................ );
Từ giờ các lỗi khi Valid Form sẽ được ZF render với cấu hình trên của bạn. Dựa vào cách làm đó bạn tùy ý thay đổi cách xuất mã HTML của lỗi Valid.
Chúc thành công.