Twig模板中如何调用动态名称的getter类方法
Twig动态调用对象方法的可行方案
- 方案1:使用Twig内置
attribute函数(优先推荐)attribute是Twig官方提供的、专门用于动态访问对象属性、调用对象方法的原生函数,你的场景可以直接改写为以下代码:
{% set brick = attribute(project.software, brickName) %}
如果对应getter方法需要传入参数,只需在第三个参数位传入参数数组即可,示例:
{% set brick = attribute(project.software, brickName, [param1, param2]) %}
- 方案2:自定义Twig扩展(适合高频动态调用场景)
如果项目中需要频繁使用动态方法调用逻辑,可以自行开发Twig扩展封装专用调用方法,同时可在扩展内增加方法名校验、权限控制等逻辑,降低安全风险。
注意:动态调用方法存在一定安全隐患,建议提前对
brickName的取值范围做校验,避免调用到非预期的内部方法。
内容的提问来源于stack exchange,提问作者awant
相关产品推荐
相关产品推荐

