2014-09-16 2 views
3

포함 또는 상위 템플릿에서 블록을 렌더링 할 수있는 방법이 있습니까?포함 또는 상위 템플릿에서 블록을 나뭇 가지 렌더링

{% include 'navbar.html.twig' %} 

<div id="main_content"> 
    {% block application_content %} 
    {% endblock application_content %} 
</div> 

{% block application_footer %} 
    footer 
{% endblock application_footer %} 

navbar.html.twig :

<p>bla bla</p> 
{% block navbar_profile_photo %} 
    <img src="{{ image }}"> 
{% endblock navbar_profile_photo %} 

content.html.twig :

{% extends "main.html.twig" %} 

{% block application_content %} 
    lorem ipsum 

    {% block foo %} 
     dolor sit amet 
    {% endblock foo %} 

{% endblock application_content %} 

나는 3 템플릿

main.html.twig이

> renderBlock ('navbar_profile_photo', 배열 ('이미지'=> 'bar.jpg 한층 강화 된'-이

$ twig-> loadTemplate ('content.html.twig')와 같은 수 호출 뭔가 할))

하지만 'content.html.twig'에서

$ twig-> loadTemplate ('content.html.twig') 블록 만 얻을 수 있습니다 -> getBlockNames();를

반환

[ 'application_content', 'foo는']

내가

{% 사용 '을 content.html.twig에 추가 할 수 navbar.html .twig '%}

하지만 제 경우에는 많은 다른 사용 문을 사용하여 많은 템플릿에서이 작업을 수행해야했습니다.

모든 포함 및 확장 및 블록으로 최종 템플릿을 얻는 방법이 있습니까? 답변을

{% extends "EverlutionApplicationBundle::main.html.twig" %} 
{% block navbar_profile_photo %} 
    {{ parent() }} 
{% endblock navbar_profile_photo %} 
..... 

답변

0

는 content.html.twig 파일에서 당신은 추가해야합니다. [Parent] (http://twig.sensiolabs.org/doc/functions/parent.html) 함수는 다른 용도로 사용됩니다. 예, 이제`navbar_profile_photo`를 차단할 수 있습니다 만, 새로운 블록인데 navbar.html.twig의 블록이 아닙니다.
+0

감사합니다,하지만 정확하지입니다 : – user2831591

관련 문제