2017-03-18 4 views
0

내 필드를 묶는 특수 div를 설정하고 싶습니다. 이를 위해 form_theme에서 감지 할 수있는 폼 빌더에 뭔가를 추가하고 div가있을 때 설정합니다. Symfony - 양식 작성기에서 양식 데이터 양식을 사용자 지정 데이터로 전달

은 내가 정의 ATTR 설정, 폼 빌더

->add('field', new myCustomType(), array('inherit_data' => true, "label" => false, "required" => false, 'attr' => array("test" => "aaa"))) 

를 추가하려고, 그것은 실제로 속성으로 HTML로 렌더링 ...하지만 양식 테마를 감지 할 수있어합니다.

{{ block('widget_container_attributes') }} 

만 위젯 속성을 제공하고,

{{ block('row_container_attributes') }} 

이 작동하지 않습니다. 실제로 양식 테마의 blocks에서 사용할 수있는 변수에 대한 온라인 소스를 찾는 데 어려움이 있으며이를 사용하는 방법 (이미 블록 호출 방법을 알기가 어려웠습니다). 앞으로 어떤 도움

내가 공식 사이트에 좀 더 많은 정보를 보였다

, here 대부분은 있지만 성공하지 않고 ...

감사합니다!

답변

1

폼 빌더에 넣으면 템플릿에 영구적으로 설정할 수 있습니다. 데이터를 설정하는 데 필요한 일부 논리가있는 경우 컨트롤러에있는 것이므로 어쨌든 시작해야합니다.

컨트롤러 :

당신의 나뭇 가지 템플릿에서 다음
public function someAction() 
{ 

    // .... 

    return $this->render('some_twig_template.twig.html', array(
     'attr' => array("test" => "aaa") 
    ); 
} 

{{ dump(attr) }} 
{{ dump(attr.test) }} 

편집 :

: 이 템플릿의 모든 시간을 렌더링하려면 직접 렌더링 필드에 클래스를 설정할 수 있습니다
{{ form_label(form.field, 'My label', { 'label_attr': {'class': 'js-hidden-row'} }) }} 
{{ form_widget(form.field, { 'attr': {'class': 'js-hidden-row'} }) }} 

내 자바 스크립트에서 몇 가지 간단한 jQuery로 숨길 수 있습니다 :

<script> 
    jQuery(document).ready(function() { 
     $('.js-hidden-row').hide(); 
    }); 
</script> 
+0

도와 주셔서 감사합니다. 실제로 논리가 아니기 때문에 디스플레이가 더 중요합니다. 일부 div는 기본적으로 숨길 수 있도록 버튼을 클릭하여 표시하고 싶습니다. 양식 작성기에서 특정 필드에 속성을 설정하려고 했으므로 양식 테마에서 속성을 찾을 수 있습니다. 'hide'클래스로 div를 설정하고 버튼을 추가하십시오 ... 내가 템플릿 자체에서 양식 필드를 정의하여 다른 하나 다음에 형식 필드를 정의하고 '{{form (form)}}'을 사용하지 않고 나는 이처럼 뭔가를 설정할 수있는 간단한 방법이 없다는 것에 놀랍니다 ... –

+1

의미가 있습니다. 나는 아직도 이것을 폼 빌더에 넣지 않을 것이라고 주장 할 것이다. 매번 그 필드를 렌더링하고 싶으므로 템플릿에 넣기 만하면됩니다. 나는 내가하는 일을 보여주기 위해 나의 대답을 수정할 것이다. – ehymel

+0

고마워, 그 길로 나가기 시작했다! –