Error at macros in embed - Twig

embedタブの中で、別ファイルで定義したマクロをincludeして使おうとしたら、ver.1.x は大丈夫だったのに、ver.2.x からエラーになる。

{% macro hoge(x, y, z) %}
{{x}} {{y}} {{z}}
{% endmacro %}

<div id="1">
  {% block xyz %}{% endblock %}
</div>

{% import 'macros.twig' as mcr %}
{% set x = 1 %}
{% set y = 2 %}
{% set z = 3 %}

<div id="0">
  {% embed "embed.twig" %}
    {% block xyz %}
      mcr.hoge(x, y, z)
    {% endblock %}
  {% endembed %}
</div>

期待する出力(ver.1.x での出力)

<div id="0">
  <div id="1">
    1 2 3
  </div>
</div>

ver.2.x でのエラー

Fatal error: Uncaught Twig_Error_Runtime: Accessing Twig_Template attributes is forbidden.

上記サイトにはちょっと無理矢理っぽい解決法が書かれているけど、引数の渡し方とかは依然不明だし、もう少し調べる。

FIXME

programming/web_development/php/library/twig/macros_in_embed.txt · 最終更新: 2018/11/12 by ikatakos
CC Attribution 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0