Variables 细枝重写已设置的变量
我一直在寻找解决问题的方法,这是在这个问题上提出的 但对我来说,不知怎么的,这不起作用Variables 细枝重写已设置的变量,variables,overriding,twig,Variables,Overriding,Twig,我一直在寻找解决问题的方法,这是在这个问题上提出的 但对我来说,不知怎么的,这不起作用 #layout.html.twig {{ show }} #base1.html.twig {% extends 'layout.html.twig' %} {% set show = 0 %} #base2.html.twig {% extends 'base1.html.twig' %} {% set show = 1 %} 但是当我渲染base2时,我只看到0。。。 为什么不是1?非常适合我。我想
#layout.html.twig
{{ show }}
#base1.html.twig
{% extends 'layout.html.twig' %}
{% set show = 0 %}
#base2.html.twig
{% extends 'base1.html.twig' %}
{% set show = 1 %}
但是当我渲染base2时,我只看到0。。。
为什么不是1?非常适合我。我想这是个街区问题。可能base1的块出现在base2的块之后,并覆盖该值 此代码会出现问题,例如:
#base2.html.twig
{% extends 'base1.html.twig' %}
{% block content %}
{% set show = 1 %}
{{ parent() }}
{{ show }}
{% endblock %}
你应该试试这个:
#layout.html.twig
{% block content %}
{% set show = 0 %}
{{ show }}
{% endblock %}
#base1.html.twig
{% extends 'layout.html.twig' %}
{% block content %}
{{ parent() }}
{% set show = 1 %}
{{ show }}
{% endblock %}
#base2.html.twig
{% extends 'base1.html.twig' %}
{% block content %}
{{ parent() }}
{% set show = 2 %}
{{ show }}
{% endblock %}
在继承过程的每个步骤中显示
show
变量,应该可以帮助您了解出了什么问题。最终响应应显示0 1 2
是否调用parent()
输出0
?结果不是0
,01
,02
?@gondo,是的,调用parent()
输出上一个变量。正如我所说,最终的响应将是0112
<对于布局,0
对于base1,0 1
对于base2,0 1 2
对于base2。我明白了,谢谢澄清,我认为您的“最终响应”是针对每个块的