Các thông báo khi Valid Form được hiện thị như hình:

tuy chon zend framework

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.


Đăng ký nhận bài viết mới