php – Twig与Symfony 2显示在prod和dev之间不同的json编码变量
发布时间:2020-12-13 14:07:09 所属栏目:PHP教程 来源:网络整理
导读:我们正在构建一个Symfony 2应用程序,从控制器发送一些数据来查看: 调节器 $user = array( 'configuration' = array( 'levels' = array( 'warning' = 0.05,'danger' = 0.10,),);return $this-render( 'MyWebsiteBundle:Core:searchResults.html.twig',array(
我们正在构建一个Symfony 2应用程序,从控制器发送一些数据来查看:
调节器 $user = array( 'configuration' => array( 'levels' => array( 'warning' => 0.05,'danger' => 0.10,),); return $this->render( 'MyWebsiteBundle:Core:searchResults.html.twig',array( 'userJSON' => json_encode($user) ) ); 视图 <script language="javascript"> user = $.parseJSON("{{ userJSON }}"); </script> 结果 在dev上,结果看起来像这样,按预期工作: user = $.parseJSON("x7Bx22configurationx22x3Ax7Bx22levelsx22x3Ax7Bx22warningx22x3A0.05,x22dangerx22x3A0.1x7Dx7Dx7D"); 另一方面,在prod上,结果以不同的方式编码,从而在控制台中显示错误: user = $.parseJSON("{"configuration":{"levels":{"warning":0.05,"danger":0.1}}}"); 控制台错误:未捕获语法错误:意外的令牌& 什么产生这个差异?
编辑:另外查看@ Lulhum的解决方案.如果它更好,最好选择它作为正确的答案.
“问题”是Twig自变量变量.我使用Twig的原始过滤器来跳过自动转换,如下所示: <script language="javascript"> user = $.parseJSON('{{ userJSON | raw }}'); </script> 现在打印: user = $.parseJSON('{"configuration":{"levels":{"warning":0.05,"danger":0.1}}}'); 链接: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |