Twig,传入块(例如h1)in include

时间:2016-05-19 11:22:35

标签: php html twig timber

如果我要包含这样的模板:

{% include 'mytemplate.twig' %}

我可以像这样传递一个块,例如:

{% include 'mytemplate.twig' 
    <h1>Hello World</h1>
%}

让它在里面呈现我的另一个模板..这样的东西:

// mytemplate.twig

<div>
    {{ content }}
</div>

3 个答案:

答案 0 :(得分:2)

您有两个选择:

  1. 将内容作为变量传递:

    {% include 'mytemplate.twig' with {'content': 'Title', } %}

  2. 请注意,您需要将模板修改为:{{ content | raw }}才能解析HTML

    1. 在模板中定义一个块:

      {% block content %}{% endblock %}

    2. 然后使用embed代替:

      {% embed "mytemplate.twig" %}
      {% block content %}
         <h1>Title</h1>
      {% endblock %}
      {% endembed %}
      

答案 1 :(得分:0)

也许:

{% include 'mytemplate.twig' 
   with {
       content: '<h1>Hello World</h1>'
   }
%}

答案 2 :(得分:0)

您可以拥有父模板并mytemplate.twig扩展它:

// parent_template.twig

<div>
    {% block content %}{% endblock %}
</div>

// mytemplate.twig

{% extends 'parent_template.twig' %}

{% block content %}<h1>Hello World</h1>{% endblock %}

或传递include中的参数:

{% include 'mytemplate.twig' with { 'content': 'Hello World' } %}

并在mytemplate.twig中:

<div>
    <h1>{{ content }}</h1>
</div>