如何在Twig中拼接变量?新手求助转换PHP代码为Twig语法
解决Twig中动态变量访问的问题
嘿,我来帮你搞定这个Twig转换的问题!先拆解下你那段PHP代码的逻辑:它通过拼接字符串生成动态变量名(比如当$geo_zone['geo_zone_id']是123时,就会访问$jne_reguler_123_rate这个变量),然后输出对应的值。
Twig里没有PHP那种${}的动态变量语法,但我们可以用Twig内置的attribute()函数实现同样效果,这个函数专门用来动态访问数组或对象的属性/键。
具体的Twig代码如下:
{{ attribute(_context, 'jne_reguler_' ~ geo_zone.geo_zone_id ~ '_rate') }}
这里的细节说明:
_context是Twig的内置变量,代表当前模板中所有可用的变量集合,相当于PHP里的全局变量上下文。如果你的目标变量是在某个特定数组/对象里,把_context换成对应的变量即可。~是Twig的字符串连接运算符,和PHP里的.作用一致,用来拼接出完整的动态变量名。attribute()函数会根据拼接后的键名,从_context中取出对应的值并输出。
如果你的geo_zone是数组类型(和PHP中$geo_zone['geo_zone_id']的结构对应),也可以写成:
{{ attribute(_context, 'jne_reguler_' ~ geo_zone['geo_zone_id'] ~ '_rate') }}
两种写法都能实现你要的效果,选和你的数据结构匹配的就行~
内容的提问来源于stack exchange,提问作者Nicolas Setiono
相关产品推荐
相关产品推荐

