Twig传递包含内部的包含

时间:2016-06-26 18:52:12

标签: symfony twig

我想传递一个include作为另一个include中传递的变量的一部分。让我画一幅画:

{% include '@AppBundle/P1/template.html.twig' with {
            'body': '<div class="col-xs-12">
                    <h1>Dummy Title</h1>
                    include '@AppBundle/P1/Form/dummyForm.html.twig' with {'form': test_form }
                    '</div>'
            }%}

这一切都可能吗?我试图逃避字符串和连接,但我总是得到&#34;标点符号&#34;预计有价值&#34;,&#34; 404.我真的很好奇是否有人遇到过这样的问题,如果有的话,他们是如何克服它的。谢谢大家!

1 个答案:

答案 0 :(得分:0)

嗯,首先回答你的问题,你可以使用函数代替标签:

main.twig

{{ 
    include('@AppBundle/P1/template.html.twig', {
        'body': include('@AppBundle/P1/dummyBody.html.twig')
    })
}}

dummyBody.html.twig

<div class="col-xs-12">
    <h1>Dummy Title</h1>
    {{ include('@AppBundle/P1/Form/dummyForm.html.twig', {'form': test_form }) }}
</div>

Demo on twigfiddle

但是你应该知道blocks,这是为此做的!

base.twig

<div class="col-xs-12">
    <h1>Dummy Title</h1>
    {% block form %}{% endblock %}
</div>

form.twig

{% extends 'base.twig' %}

{% block form %}
   some form
{% endblock %}

渲染 form.twig 将显示相同的内容,但更干净且易于重复使用。

Demo on twigfiddle