嵌入Twig的子组件的for循环中的覆盖块

时间:2020-04-18 12:09:50

标签: php templates inheritance twig

我知道以下内容在树枝中不起作用,我想知道如何实现,我找不到此确切用例的任何示例,这里有一些代码:

{# --------- page.twig --------- (level 1) #}
{% set slides = [
  [ 'img' => 'x', 'id' => 'a', width => 100 ],
  [ 'img' => 'y', 'id' => 'b', width => 200 ],
  [ 'img' => 'z', 'id' => 'c', width => 300 ],
]; %}

{% embed 'gallery' with { slides: slides } only %}
  {% block slide_footer %}
    in this page show dynamic footer, this is slide: {{ slide.id }}
  {% endblock %}
{% endembed %}


{# --------- gallery.twig ------ (level 2) #}
<div class="gallery">
  {% for slide in slides %}
    <div>
      <img src="{{ slide.img }}" width="{{ slide.width }}">
    </div>
  {% endfor %}

  {% embed 'lightbox' with { slides: slides } only %}
    {% block slide_footer %}{% endblock %}
  {% endembed %}
</div>


{# --------- lightbox.twig ------ (level 3) #}
<div class="lightbox">
  {% for slide in slides %}
    <div>
      <img src="{{ slide.img }}" width="{{ slide.width * 2 }}">
      {% block slide_footer %}
        footer content to be overridden from parent-parent
      {% endblock %}
    </div>
  {% endfor %}
</div>

如果不清楚,我想要实现的是在我要使用{{的每个不同slide_foot中拥有一个访问当前slide对象的自定义page.twig对象1}}组件

如果有任何想法,谢谢!

ps:这可以通过刀片组件的插槽轻松实现

0 个答案:

没有答案