【问题标题】:Twig json_encode with multiple options具有多个选项的 Twig json_encode
【发布时间】:2016-04-29 11:44:56
【问题描述】:

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

json_encode

json_encode 过滤器返回一个值的 JSON 表示:

{{ data|json_encode() }}

Twig 在内部使用 PHP json_encode 函数。

参数

options:json_encode 选项的位掩码

({{data|json_encode(constant('JSON_PRETTY_PRINT')) }})

我要做的是添加多个这些选项。

我想要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')) }}

但它们都不起作用。如何组合 TWIGs 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"
}

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

    看来你需要b-or 在树枝中进行按位或运算 (docs)。

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

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

    【讨论】:

      猜你喜欢
      • 2015-10-20
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      相关资源
      最近更新 更多