Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在带有json_encode twig函数的twig文件中使用php json_encode选项_Php_Symfony_Twig - Fatal编程技术网

如何在带有json_encode twig函数的twig文件中使用php json_encode选项

如何在带有json_encode twig函数的twig文件中使用php json_encode选项,php,symfony,twig,Php,Symfony,Twig,我试图使用twig json_encode函数,但当我这样做时 var packageDetails = {{(packageDetails|json_encode)}}; packageDetails是从控制器传递的数组的数组 这让我说错话 invalid property id 因为“ 所以我想使用逃逸过滤器; 如何使用它?这仅仅是因为您没有将输出用引号括起来吗 var variable = '{{{reference}}}'; 更新: 解决这个问题的实际答案是根据

我试图使用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 }}

添加此选项是因为它回答了标题中的问题,但听起来原始过滤器才是您真正想要的。不过,其他人可能会发现此选项很有用。

对于任何与Blade/Laravel5.x有类似问题的人来说

var v = JSON.parse('{!! $v !!}');

如果我将输出用引号括起来,我就不会得到json对象。当我console.log它时,我得到的是
{“college”:..
我希望我的js变量存储一个对象,我可以循环通过这个对象。如果字符串包含一个“符号”,js将中断。使用“escape('js')”细枝过滤器来避免这种情况。因此,我建议:var variable='1{{reference | json | u encode | escape('js')| raw}“有同样的”问题,所以“原始注释”救了我的命。谢谢!@paulgreg你真的需要这里的
|raw
吗?使用原始过滤器进行XSS攻击不会有危险吗?@Frank6:取决于
数据的来源;如果它来自你自己的数据库查询或类似查询,它是相当安全的。如果它来自用户输入,那么它应该被消毒在传递到Twig viewGood之前!现在它没有在位置错误处给我意外的JSON标记。更改JSON.parse({{cats}JSON|u encode{raw}}');使用{cats{JSON|u encode(常量('JSON|u PRETTY_PRINT'))| raw}不使用双精度{?变量是$v或只是一个参数。即使不使用Laravel或blade,答案也不清楚。你真的认为我知道我4年前给出的答案吗?;)可能不知道,但任何读过本文并对blade/Laravel5.x记忆犹新的人都可以回答这个问题。