如何创建输出为object或array而非string的twig宏

如何创建输出为object或array而非string的twig宏,twig,Twig,如何使twig宏的输出是ObjSet或array,而不是string?我需要为javascript将不同的输入重新格式化为相同的输出 {% set obj = macros.createObject( input ) %} <h2>{{ obj.test }}</h2> {% macro createObject ( input ) %} {% set output = { 'test' : 'Hello world' } %}

如何使twig宏的输出是ObjSet或array,而不是string?我需要为javascript将不同的输入重新格式化为相同的输出

    {% set obj = macros.createObject( input ) %}
    <h2>{{ obj.test }}</h2>

    {% macro createObject ( input ) %}
        {% set output = { 'test' : 'Hello world' } %}
        {% set output = output|merge({'disabledLogo': 'true'}) %}
    {%  endmacro %}
{%set obj=macros.createObject(输入)%}
{{obj.test}}
{%macro createObject(输入)%}
{%set输出={'test':'Hello world'}%}
{%set output=output | merge({'disabledLogo':'true'})%}
{%endmacro%}

谢谢

不幸的是,你不能这么做


如果您需要以某种方式修改某些数据,您最好创建一个过滤器。

为什么不创建一个过滤器?因为此对象通过其他模板的其他条件非常个性化,因此您做了一些错误的事情。调整控制器中的数据,而不是在
twig
中。因为此对象通过其他模板的其他条件非常独立