Symfony Twig Path函数参数,key由字符串定义

问题描述 投票:0回答:1

在Twig with Symfony中,要在模板中生成路径,它需要使用

{{ path('mypathname', {parameterName: parameterValue}) }}

在我的项目中,我有一个继承的模板,一个块循环遍历一大块数据并输出 URL 列表。 我想要做的是,来自我的新模板,允许我

{% set %}
第一个参数的键名

基本上就是这样

template.html.twig

<ul>
{% for thing in things %}
    <li><a href="{{ path(path_name, {path_param: thing.value}) }}">{{ thing.name }}</a></li>
{% endfor %}
</ul>

otherthings.html.twig

{% extends 'template.html.twig' %}
{% set path_name = "thingDetail" %}
{% set path_param = "id" %}

并查看类似的输出

<ul>
    <li><a href="/things/detail?id=20">The 20th Thing</a></li>
</ul>

这可能听起来很荒谬,但在这个应用程序中,命名和路径样式并不总是与进入该块循环的不同类型的内容相匹配,因此需要进行某种类型的覆盖,而这是我最不想做的事情现在要做的就是覆盖每种类型的块,而最后需要做的事情是 URL 生成

php symfony twig
1个回答
3
投票

如果将哈希键括在括号中,Twig 会将其视为表达式:

{%- set field = 'foo' -%}
{%- set arr = { (field): 'bar' } -%}

会将

arr
设置为

{ foo: 'bar' }

(这在 Twig 文档中提到过,但很容易看出它是如何被忽视的。)

© www.soinside.com 2019 - 2024. All rights reserved.