2014-01-22 4 views
0

저는 Twig을 처음 사용하고 있으며 다음을 달성하는 방법을 찾으려고합니다.변수가 null 인 경우 상위 템플릿을 취소합니다.

속성의 유형 (텍스트, 이미지, 날짜 등)에 따라 다른 Twig 템플릿으로 렌더링하려는 속성 집합이있는 개체가 있습니다.

<div class="row"> 
     <div class="title">Title of property</div> 
     <div class="propertycontent"> 
      //Specific property content depending on property type 
     </div> 
</div> 

내 문제는 속성이 정의되지 않은 경우 내가 완전한 출력을 건너 알아낼 수 있다는 것입니다 다음과 같이

나는 그들을 렌더링 할. 부모 템플릿을 사용하여 렌더링 된 속성 내용의 "배치"를 처리 할 수 ​​있기를 원합니다. 속성 값이 정의되지 않은 경우 아무 것도 반환하지 않는 부모 템플릿을 사용할 수 있습니까? 거기에 의존하지 않는 또 다른 좋은 해결책은 "begin"/ "end"을 포함하여 각 템플릿을 래핑하는 것입니까?

미리 감사드립니다.

+0

var에 따라 TWIG 템플릿을 확장 할 수 있는지 궁금합니다. 예 :'{% if my_var = '...'%} {% extends "My : Own : layout.html.twig"%} {% else %} {% extends "Any : 기타 : layout.html.twig "%}'옵션이 될 수 있습니까? (나는 그것이 작동하는지 확실하지 않기 때문에 이것을 대답으로 게시하지 않습니다.) –

+0

나뭇 가지가 이렇게 할 수 있습니다 : {% extends my_var? "foo.html": "bar.html"%} @DaniSancas – DasBaconfist

답변

2

해결 방법 : 값을 호출 부모 (null이 될 수 있음)와 제목

부모 (propery_wrapper.twig) :

{% if value %} 
    <div class="row"> 
    <div class="title">{{title}}</div> 
    <div class="propertyContent"> 
      {% block content %}{% endblock %} 
     </div> 
    </div> 
{% endif %} 

아이 (높이 속성) : 나는 '

{% extends 'property_wrapper.twig' %} 
{% block content %} 
    {{ value.value|number_format(2, ',') }} m 
{% endblock %} 
+0

정말 효과가 있었습니까? 내 경우에는'value'가'false' 일 때 결과는 비어 있습니다. 자식 템플릿에서 어떤 블록을 호출하려고해도 상관 없습니다. 내가 뭐 놓친 거 없니? – yefrem

관련 문제