gpt4 book ai didi

symfony - 如何应用名称存储在变量中的过滤器

转载 作者:行者123 更新时间:2023-12-01 04:56:45 24 4
gpt4 key购买 nike

基本上,我正在寻找对象和数组的attribute()函数的过滤器等效项。我希望能够应用名称存储在变量中的过滤器。

{# 
This works and is really useful
prints object.someVar
#}
{% set varName = 'someVar' %}
{{ attribute(object,varName) }}

{#
The function "filter" does not exist
#}
{% set filterName = 'somefilter' %}
{{ filter(object,filterName) }}

最佳答案

为了达到这个目标,您必须扩展您的TwigFilter。

最初如何编写您的扩展名,您可以阅读here

假设您已经创建了扩展名,就定义了函数,例如applyFilter

//YourTwigFilterExtension.php

public function getFunctions()
{
return array(
...
'apply_filter' => new \Twig_Function_Method($this, 'applyFilter'),
);
}


然后,您必须定义此功能

public function applyFilter($context, $filterName)
{
// handle parameters here, by calling the
// appropriate filter and pass $context there
}


完成此操作后,您将可以调用Twig:

{{ apply_filter(object, 'filterName') }} 




干杯;)

关于symfony - 如何应用名称存储在变量中的过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10703941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com