2014-06-17 1 views
0

부트 스트랩 양식 테마를 사용 중입니다. 이것은 내 fields.html.twig 양식 템플릿입니다.Symfony2 체크 박스 양식 템플릿 사용자 정의

{% block form_row %} 
{% spaceless %} 
    <div class="form-group {% if errors|length > 0 %}has-error{% endif %}"> 
     {{ form_label(form, label|default(null), { 'label_attr': {'class': 'control-label'} }) }} 
     {{ form_errors(form) }} 
     {% set class='' %} 
     {% if attr.class is defined %} 
      {% set class = attr.class %} 
     {% endif %} 
     {{ form_widget(form, { 'attr': {'class': 'form-control ' ~ class} }) }} 
    </div> 
{% endspaceless %} 
{% endblock form_row %} 

문제는 확인란을 선택하지 않는 것입니다. 일반 입력 필드와 같은 확인란을 렌더링합니다. 위의 템플릿을 기반으로 체크 박스 템플릿을 설정하는 방법에 대한 아이디어가 있습니까?

+0

이 양식 필드를 추가 할 때 관련 '$ builder-> add' 파트를 붙여 넣을 수 있습니까? 'config.yml'에 fields.html.twig가'twig' 리소스로 정의되어 있습니까? –

+0

@ DebreczeniAndrás yeah 모든 것이 잘 작동하며 위의 템플릿으로 만 확인란이 렌더링됩니다. 그러나 체크 박스는 .form-control이 아니라 다른 클래스를 가져야합니다. 체크 박스 –

+0

위의 블록으로 렌더링하면 안되는 이유를 모르겠습니까? form_row 블록 만 붙여 넣었습니다. 이 * 모든 양식 요소를 렌더링합니다. 다른 블록도 무시 했습니까? 특히 체크 박스를위한 것? 필드에'attr [class] = checkbox'를 추가하고 있습니까? –

답변

4

fields.html.twig의 확인란과 관련된 블록을 재정의해야합니다.

{% block choice_widget_collapsed %} 
    {% spaceless %} 

    {% endspaceless %} 
{% endblock choice_widget_collapsed %} 


{% block choice_widget_expanded %} 
    {% spaceless %} 

    {% endspaceless %} 
{% endblock choice_widget_expanded %} 

{# you can even override the way options are rendered #} 
{% block choice_widget_options %} 
    {% spaceless %} 

    {% endspaceless %} 
{% endblock choice_widget_options %} 
기본 구현을 위해

하고 필드 템플릿의 기초는 다음 위치에서 얻을 수있다 :
공급 업체/심포니/심포니/src에 당신의 필드 유형에 따라 다음과 같은 블록을 정의 (확대, 축소) /Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig