对于这个问题,我有一个非常具体的用例:我正在为Pimcore区域砖构建一个库,其中各种砖共享某些属性。像至少有10块砖可以选择在零到五之间的(Twitter引导程序)边距。
UI的用户可以定义标题类型,页边距顶部和将显示的某些标题的颜色。虽然标题类型的定义是特定于,但许多其他积木可能会使用边距顶部和颜色。
所以我为边距组件制作了一个树枝模板
{% set marginTopSel = pimcore_select('marginTopSel', {
store: [1,2,3,4,5],
reload: true,
width: 80
}) %}
{% if editmode %}
<div class="container editprop-container no-material">
<div class="row">
<div class="col col-xs-12 col-sm-6 col-md-2">
<div class="custom-control custom-checkbox">
<label>{{ "Margin Top"|trans }}</label><br/>
{{ marginTopSel | raw }}
</div>
</div>
</div>
</div>
{% endif %}
并通过以下方式将其包含在父模板中:
{% include 'marginselectors.html.twig' %}
但是在父模板中,我需要变量marginTopSel
作为输出:
{% set marginTop = marginTopSel.getData()|default("") %}
<{{ type }} class="mt-{{ marginTop}}">{{ pimcore_input('headline_text',{'placeholder':'Headline'}) }}</{{ type }}>
这是不可能的:
marginTopSel未定义
有一种方法可以使用with
关键字:{% include 'template.html' with {'foo': 'bar'} %}
在Twig中将变量传递给子模板。但是,如何反过来将包含在模板中的变量定义到父模板中呢?