我在Shopwired平台上使用{{TWIG}}。硬编码到其中一个模板中的是一个画廊;
{# Render carousel #}
{% set gallery_name = 'global.theme.settings.gallery_location %}
这当然很有效,但是我想扩展这个并为我正在建设的网站制作一些动态画廊。
我已经想出如何附加/添加页面标题来构建它;
{# Render carousel #}
{% set gallery_name = 'global.theme.settings.gallery_' ~ title|lower %}
{% set images = gallery_name %}
当我使用{{images}}来回显结果时,它会输出字符串名称'global.theme.settings.gallery_location'(这对我所在的页面是正确的)而不是预期和期望的'Array'
以下内容必须接近正确,但它只输出数组中的一个项目。
{# Render carousel #}
{% set gallery_name = 'global.theme.settings.gallery_' ~ title|lower %}
{% set images = [gallery_name] %}
我很亲密......我做错了什么?
答案 0 :(得分:0)
要使用动态密钥,您无法通过dot
表示法来访问属性,因为编译器无法处理。使用attribute
或array
表示法来访问数据。
{% set arr = {
foo : {
bar : {
foobar : {
dynamic_index : 42,
}
}
}
} %}
{% set key = 'dynamic' %}
{{ attribute(arr['foo']['bar']['foobar'], key~'_index') }} {# 42 #}
{{ arr['foo']['bar']['foobar'][key~'_index'] }} {# 42 #}