![](/img/trans.png)
[英]How to use php json_encode options in twig file with json_encode twig function
[英]Twig json_encode with multiple options
从关于json_encode()
过滤器的TWIG文档中,他们说:
json_encode
json_encode过滤器返回值的JSON表示:
{{ data|json_encode() }}
在内部,Twig使用PHP json_encode函数。
参数
options:json_encode选项的位掩码
({{data|json_encode(constant('JSON_PRETTY_PRINT')) }})
我想要做的是添加多个选项。
我想要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')) }}
{{ array|json_encode(constant('JSON_PRETTY_PRINT', 'JSON_UNESCAPED_SLASHES')) }}
但它们都不起作用。 如何为TWIGs json_encode()
过滤器组合两个选项?
{% 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"
}
看来你需要b-or
在twig中进行按位或操作( docs )。
所以像这样的东西应该工作:
{{ array|json_encode(constant('JSON_PRETTY_PRINT') b-or constant('JSON_UNESCAPED_SLASHES')) }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.