我正在尝试使用twig的json_encode函数,但是当我这样做时
var packageDetails = {{(packageDetails|json_encode)}};
而 packageDetails 是从控制器传递的数组的数组。
它会给我一个错误提示:
invalid property id
由于出现了特殊字符 "
,所以我想使用转义过滤器;那么如何使用它呢?
是因为你没有将输出用引号括起来吗?
var variable = '{{{reference}}}';
更新:
根据评论,解决该问题的实际答案是在标签中添加|raw。
var packageDetails = {{(packageDetails|json_encode|raw)}};
您可以按照以下方式添加选项:
{{ data|json_encode(constant('JSON_PRETTY_PRINT'))|raw }}
我加上这个回答是因为它回答了你标题中的问题,但听起来原始过滤器才是你真正需要的。尽管如此,其他人可能会发现这很有用。
因为它回答了你标题中的问题,所以我加上了这个回答,但看起来你真正需要的是原始过滤器。不过,其他人可能也会觉得这个回答有用。
data
来自哪里;如果是来自你自己的数据库查询或类似方式,那么它就很安全。但如果是来自用户输入的数据,则在传递给Twig视图之前应对其进行净化处理。 - MidnightLightningJSON.parse('{{ cats|json_encode|raw }}');
替换为{{ cats|json_encode(constant('JSON_PRETTY_PRINT'))|raw }}
。 - Savoo如果你遇到了 Blade / Laravel5.x 相关的问题,以下内容可能会对你有所帮助。
var v = JSON.parse('{!! $v !!}');
{"college":....
。 - aditya| raw
吗? - Michon