Twig 细枝中的变量
我正在尝试使用Twig中的hash编写一个包含1级子菜单的菜单。我的代码是:Twig 细枝中的变量,twig,Twig,我正在尝试使用Twig中的hash编写一个包含1级子菜单的菜单。我的代码是: {% set regiones = { patagonia: { title: "Patagonia"}, pampa: { title: "Pampa"}, cuyo: { title: "Cuyo"}, noreste: { title: "Noreste"}, noroeste: { title: "Noroeste"} } %} {% set patagonia = { neuq
{% set regiones = {
patagonia: { title: "Patagonia"},
pampa: { title: "Pampa"},
cuyo: { title: "Cuyo"},
noreste: { title: "Noreste"},
noroeste: { title: "Noroeste"}
} %}
{% set patagonia = {
neuquen: { title: "Neuquén"},
rionegro: { title: "Río Negro"},
chubut: { title: "Chubut"},
santacruz: { title: "Santa Cruz"},
tierradelfuego: { title: "Tierra del Fuego"}
} %}
{% set pampa = {
buenosaires: { title: "Buenos Aires"},
cordoba: { title: "Córdoba"},
lapampa: { title: "La Pampa"},
santafe: { title: "Santa Fe"}
} %}
{% set cuyo = {
mendoza: { title: "Mendoza"},
sanjuan: { title: "San Juan"},
sanluis: { title: "San Luis"}
} %}
<nav>
<ul>
{% for slug, item in regiones %}
<li><a href="/{{ slug }}">{{ item.title }}</a>
<ul>
{% for slugg, itemm in {{ slug }} %}
<li><a href="/{{ slugg }}">{{ itemm.title }}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</nav>
{%set regiones={
巴塔哥尼亚:{标题:“巴塔哥尼亚”},
pampa:{标题:“pampa”},
cuyo:{标题:“cuyo”},
诺雷斯特:{标题:“诺雷斯特”},
诺洛斯特:{标题:“诺洛斯特”}
} %}
{%set巴塔哥尼亚={
neuquen:{标题:“Neuquén”},
里奥内格罗:{标题:“里奥内格罗”},
丘布特:{标题:“丘布特”},
santacruz:{标题:“Santa Cruz”},
火地岛:{标题:“火地岛”}
} %}
{%set pampa={
布宜诺斯艾利斯:{标题:“布宜诺斯艾利斯”},
科尔多瓦:{标题:“科尔多瓦”},
拉帕帕:{标题:“拉帕帕”},
圣塔菲:{标题:“圣塔菲”}
} %}
{%set cuyo={
门多萨:{标题:“门多萨”},
圣胡安:{标题:“圣胡安”},
圣路易斯:{标题:“圣路易斯”}
} %}
{%为slug,项位于regiones%}
-
{{slug}}%}中的{slug%为,itemm为
{%endfor%}
{%endfor%}
这一行:“{slug}}}%}中的{%for slug,itemm”不起作用。
如何在twig中编写PHP中的${$slug}之类的变量
谢谢,
Mikel将变量保存在当前上下文中,因此您可以执行以下操作:
{% for slugg, itemm in _context[slug] %}
因为您没有设置变量noreste
和noroeste
,所以需要用if
块包围for
块(否则,Twig将抛出异常,因为\u上下文
没有键noreste
和noroeste
):
然后修改循环,如下所示:
{% set cities = {
patagonia: {
neuquen: { title: "Neuquén"},
rionegro: { title: "Río Negro"},
chubut: { title: "Chubut"},
santacruz: { title: "Santa Cruz"},
tierradelfuego: { title: "Tierra del Fuego"}
},
pampa: {
buenosaires: { title: "Buenos Aires"},
cordoba: { title: "Córdoba"},
lapampa: { title: "La Pampa"},
santafe: { title: "Santa Fe"}
},
cuyo: {
mendoza: { title: "Mendoza"},
sanjuan: { title: "San Juan"},
sanluis: { title: "San Luis"}
}
} %}
{% if cities[slug] is defined %}
<ul>
{% for slugg, itemm in cities[slug] %}
<li><a href="/{{ slugg }}">{{ itemm.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
{%如果定义了城市[slug%}
{城市中的slug、itemm的百分比[slug]}
{%endfor%}
{%endif%}
还有一种方法是将地区和城市放在同一个哈希中:
{% set regiones = {
patagonia: {
title: "Patagonia",
cities: {
neuquen: { title: "Neuquén"},
rionegro: { title: "Río Negro"},
chubut: { title: "Chubut"},
santacruz: { title: "Santa Cruz"},
tierradelfuego: { title: "Tierra del Fuego"},
},
},
pampa: {
title: "Pampa",
cities: {
buenosaires: { title: "Buenos Aires"},
cordoba: { title: "Córdoba"},
lapampa: { title: "La Pampa"},
santafe: { title: "Santa Fe"},
},
},
cuyo: {
title: "Cuyo",
cities: {
mendoza: { title: "Mendoza"},
sanjuan: { title: "San Juan"},
sanluis: { title: "San Luis"},
},
},
noreste: {
title: "Noreste",
},
noroeste: {
title: "Noroeste",
},
} %}
<nav>
<ul>
{% for slug, item in regiones %}
<li>
<a href="/{{ slug }}">{{ item.title }}</a>
{% if item.cities is defined %}
<ul>
{% for slugg, itemm in item.cities %}
<li><a href="/{{ slugg }}">{{ itemm.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
{%set regiones={
巴塔哥尼亚:{
标题:“巴塔哥尼亚”,
城市:{
neuquen:{标题:“Neuquén”},
里奥内格罗:{标题:“里奥内格罗”},
丘布特:{标题:“丘布特”},
santacruz:{标题:“Santa Cruz”},
火地岛:{标题:“火地岛”},
},
},
潘帕:{
标题:“潘帕”,
城市:{
布宜诺斯艾利斯:{标题:“布宜诺斯艾利斯”},
科尔多瓦:{标题:“科尔多瓦”},
拉帕帕:{标题:“拉帕帕”},
圣塔菲:{标题:“圣达菲”},
},
},
cuyo:{
标题:“Cuyo”,
城市:{
门多萨:{标题:“门多萨”},
圣胡安:{标题:“圣胡安”},
圣路易斯:{标题:“圣路易斯”},
},
},
诺雷斯特:{
标题:“诺雷斯特”,
},
诺罗斯特:{
标题:“诺罗埃斯特”,
},
} %}
{%为slug,项位于regiones%}
-
{%如果定义了item.cities%}
{对于slug,item.cities%}
{%endfor%}
{%endif%}
{%endfor%}
可能重复的@martias的可能重复不知道您何时首先回答问题,然后将其标记为重复。只需标记为dupe,然后继续前进
{% set regiones = {
patagonia: {
title: "Patagonia",
cities: {
neuquen: { title: "Neuquén"},
rionegro: { title: "Río Negro"},
chubut: { title: "Chubut"},
santacruz: { title: "Santa Cruz"},
tierradelfuego: { title: "Tierra del Fuego"},
},
},
pampa: {
title: "Pampa",
cities: {
buenosaires: { title: "Buenos Aires"},
cordoba: { title: "Córdoba"},
lapampa: { title: "La Pampa"},
santafe: { title: "Santa Fe"},
},
},
cuyo: {
title: "Cuyo",
cities: {
mendoza: { title: "Mendoza"},
sanjuan: { title: "San Juan"},
sanluis: { title: "San Luis"},
},
},
noreste: {
title: "Noreste",
},
noroeste: {
title: "Noroeste",
},
} %}
<nav>
<ul>
{% for slug, item in regiones %}
<li>
<a href="/{{ slug }}">{{ item.title }}</a>
{% if item.cities is defined %}
<ul>
{% for slugg, itemm in item.cities %}
<li><a href="/{{ slugg }}">{{ itemm.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>