From the TWIG documentaion about json_encode() filter他们说:

我想做的是添加多个这些选项。
我想要JSON_PRETTY_PRINTJSON_UNESCAPED_SLASHES我试过了

{{ array|json_encode(constant('JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES')) }}
{{ array|json_encode(constant('JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES')) }}
{{ array|json_encode(constant('JSON_PRETTY_PRINT', 'JSON_UNESCAPED_SLASHES')) }}
但是它们都不起作用。如何合并TWIG的json_encode()过滤器的两个选项?
TwigFiddle here
{% set array = {'xxx': "one", 'yyy': "two", 'path': "/hello/world" } %}

{% autoescape false %}
    {{ array|json_encode() }}
    {{ array|json_encode(constant('JSON_PRETTY_PRINT')) }}
    {{ array|json_encode(constant('JSON_UNESCAPED_SLASHES')) }}
{% endautoescape %}
所需的输出应为
{
    "xxx": "one",
    "yyy": "two",
    "path": "/hello/world"
}

最佳答案

似乎在 Twig 中需要按位或操作(docs)的b-or

所以这样的事情应该工作:

{{ array|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_UNESCAPED_SLASHES')) }}

关于php - Twig json_encode具有多个选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36937536/

10-16 17:12