2012-08-25 38 views
7

bạn có thể vui lòng giúp tôi hiểu cách tùy chỉnh thông báo lỗi trong biểu mẫu với Symfony2 không? Tôi muốn thay đổi bố cục HTML, thêm div, lớp học, v.v.Symfony2 tùy chỉnh thông báo lỗi biểu mẫu

Đọc hướng dẫn, nó cung cấp một đoạn mã để đặt vào tệp có tên fields_errors.html.twig nhưng không cho biết vị trí đặt tệp này và nếu cần thêm một số cấu hình.

Ai đó có thể giúp tôi không?

+0

Bạn có muốn sửa đổi thông báo lỗi được hiển thị hoặc thay đổi đánh dấu/hiển thị thông báo không? – weyandch

+0

Tôi muốn thay đổi hiển thị, các thẻ HTML, các lớp, v.v. – Bagbyte

Trả lời

1

Bạn có thể tùy chỉnh tất cả các thông báo lỗi của bạn cùng một lúc trong mẫu của bạn:

<div class="your_new_class"> 
    {{ form_errors(form) }} 
</div> 

Hoặc cá nhân (nếu trường của bạn là tiêu đề ví dụ)

<div class="your_new_class"> 
    {{ form_errors(form.task) }} 
</div> 
5

Bạn phải đặt mẫu trong thư mục Resourses/views/ của gói của bạn. Ví dụ,

{# Vendor/YourBundle/Resourses/views/form_fields.html.twig #} 

{% extends 'form_div_layout.html.twig' %} 

{% block form_errors %} 
    {# your form error template #} 
{% endblock form_errors %} 

{# other customized blocks #} 

Và sau đó trong mẫu trang mẫu của bạn,

{% extends your:page:layout %} 

{% form_theme form 'VendorYourBundle::form_fields.html.twig' %} 

{{ form_errors(form.field) }} 
{# ..... #} 

Để biết thêm lựa chọn và thực hiện kiểm tra tài liệu tham khảo form theme cookbook entrydefault field layout implementation

1

Trong symfony3 dạng chủ đề đầu tiên gọi de trong config.yml

twig: 
debug:   "%kernel.debug%" 
strict_variables: "%kernel.debug%" 
form_themes: 
    - 'YourBundle:FormTheme:error.html.twig' 

Twig error.html.twig ví dụ

{% block form_errors %} 
{% spaceless %} 
    {% if errors|length > 0 %} 
    <div class="alert alert-danger"> 
     {% for error in errors %} 
    <strong>{{ error.message }}</strong> 
     {% endfor %} 
    </div> 
    {% endif %} 
{% endspaceless %} 
{% endblock form_errors %} 
Các vấn đề liên quan