2014-06-09 3 views
0

parent() 함수를 호출하여 맞춤 확장의 템플릿에서 블록을 확장하는 기능이 있나요?나뭇 가지 맞춤 확장 - 확장 블록에서 부모() 호출

내 base.html.twig에 블록 footer_javascript이 있고 내 사용자 정의 확장 프로그램에서이 블록에 일부 JS를 추가하고 싶지만 원래 블록 footer_javascript을 겹쳐 쓰지 않도록해야합니다. 나는이 시도 :

custom_extension.html.twig :

{# some html/twig code, not really important #} 
{% block footer_javascript %} 
    {{ parent() }} 
    {# some javascript for this custom twig extension #} 
{% endblock footer_javascript %} 

하지만 물론, 나는

Calling "parent" on a template that does not extend nor "use" another template is forbidden

base.html.twig 얻을 - 블록 구조와 기본 템플릿 :

{# base html/twig structure, not really important %} 

{# block which will be extended/overwriten in templates which extends this base.html.twig #} 
{% block footer_javascript %} 
{% endblock footer_javascript %} 

extended.html.twig - base.html.twig를 확장하는 템플릿. 내 사용자 지정 확장 템플릿의 기본 footer_javascript을 확장 할 수있는 방법이

{% extends "::base.html.twig" %} 

{# some html/twig ... #} 

{{ custom_extension(entity) }} 

{% block footer_javascript %} 
{{ parent() }} 
{# javascript used for extend.html.twig #} 
{% endblock footer_javascript %} 

있습니까 :이 템플릿에서 나는 사용자 정의 나뭇 가지 확장 기능을 사용하고? parent()를 사용하려면

+0

템플릿과 'base.html.twig'를 표시 할 수 있습니까? – bartek

+0

@bartek base.html.twig에 대한 개요를 추가했지만 다른 코드는 그다지 중요하지 않습니다. 특정 질문이 있으면 그냥 물어보십시오. 나는 대답하려고 노력할 것입니다. – Cockootec

답변

2

, 당신은 템플릿을 확장해야합니다.

custom_extension.html.twigbase.html.twigextended.html.twig과 같이 확장해야합니다.

편집 :
당신이 <body> 2 템플릿을 사용하는 경우 {{ parent() }}을 사용해야하지만, 대신 당신이 당신의 블록에 포함됩니다 나뭇 가지에 JS를 넣지 마십시오.

+0

나는 이것을 시도하고 나는 bartek에게 대답했지만 그는 그의 대답을 삭제했다. custom_extension.html.twig를 확장 할 때 다음과 같은 오류가 발생합니다. "다른 템플릿을 확장하는 템플릿은 custom_extension.html.twig에 본문을 가질 수 없습니다" – Cockootec

+1

과 2 개의 템플릿을 사용하는 경우, {{parent()}}를 사용하고 대신 js를 나뭇 가지에 넣어 블록에 포함시킵니다. – Hornth

+0

{{parent()}} 없이는 작동하는 것 같습니다. 감사 – Cockootec

관련 문제