2014-09-21 3 views
1

최근에 Symfony2 프레임 워크를 사용하기 시작했습니다.
내가 사용하게 될 잘못된 용어에 대해 이미 사과드립니다.Symfony2 양식 사용자 정의

신청서에 양식이 표시되는 방식을 사용자 정의하고 싶습니다.

보다 구체적으로, 내 나뭇 가지 파일에 내가

{{ form(forms) }} 

으로 전체 양식을 렌더링하고 나는 양식의 레이아웃을 사용자 정의하고 싶습니다. 양식의 각 행을 다음과 같이 확장 할 수 있습니다.

{{ form_start(forms) }} 

//... 
<div> 
    {{ form_label(forms.field) }} 
    {{ form_errors(forms.field) }} 
    {{ form_widget(forms.field) }} 
</div> 
//... 

{{ form_end(forms) }} 

이 형식으로 작성된 양식을 사용하여 필요한 맞춤 설정을 레이아웃에 추가 할 수있었습니다.

문제는 다음과 같습니다. 양식에 미리 정의 된 행 수가 없지만 이는 데이터베이스에 저장된 일부 값에 따라 달라집니다. 내 나뭇 가지에서하고 싶은 것은 다음과 같습니다.

{{ form_start(forms) }} 

{% for field in forms %} 
<div> 
    {{ form_label(forms.field) }} 
    {{ form_errors(forms.field) }} 
    {{ form_widget(forms.field) }} 
</div> 
{% endfor %} 

{{ form_end(forms) }} 

불행히도이 for 루프는 작동하지 않습니다. 나는 또한 (How to Customize Form Rendering)을 들여다 보았다. 그러나 이것이 내 경우에 어울리지 않는다고 생각한다.

의견이 있으십니까?
도움을 주셔서 감사합니다.

답변

1

당신은 양식에 대한 모든 형태의 행이 함께 테마하는 방법을 변경하지 않고 직접 원하는 것을 할 수 있고,보다 유연한 솔루션 인 방법을 http://symfony.com/doc/current/cookbook/form/form_customization.html#customizing-the-form-row

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

{% block form_row %} 
    <div> 
     {{ form_label(form) }} 
     {{ form_errors(form) }} 
     {{ form_widget(form) }} 
    </div> 
{% endblock form_row %} 

// view.html.twig 
{% form_theme form 'my_form.html.twig' %} 
{{ form_start(form) }} 
+0

예! 당신 말이 맞아요! 대답은 내 눈 바로 아래였습니다 ... 대단히 고마워요! – Alberto

0

을 form_row 사용자 정의 할 필요가있다.

:

기본 양식 (! 아니라면, 당신이 일을 끝낼 지금 어떻게 우리를 보자) 컬렉션을 포함 가정하면, 당신은 이런 식으로 뭔가를 할 수있는 항목 (각각의 다른 형태)의 변수 번호 subforms라고

{{ form_start(forms) }} 

{% for subform in forms.subforms %} 
<div> 
    {{ form_label(subform.fieldname) }} 
    {{ form_errors(subform.fieldname) }} 
    {{ form_widget(subform.fieldname) }} 
</div> 
{% endfor %} 

{{ form_end(forms) }} 
관련 문제