如何修复SyntaxError:意外的令牌&

时间:2016-05-06 18:03:13

标签: json twig

我发送一个根据json_encode函数编写的php到plantilla.twig,我想绘制一个饼图类型,浏览器在控制台中显示以下错误未捕获语法错误:意外的令牌& ¨我在数据后面划线:[[& QUOT;中间17.5英寸& “;,2220]]

控制器类

public function tiempoXEtapaAction()
{

    $em = $this->getDoctrine()->getManager();
    $servicepozo = $this->get('service.pozo');
    $pozoActual = $servicepozo->getPozoActual();
    $idpozo = $servicepozo->getPozoActual()->getId();

    $activityCollections = $em->getRepository('ActividadBundle:ActividadDiariaCollection')->findBy(array('pozo' => $idpozo), array('id' => 'ASC'));
    $intervalos = $em->getRepository('IntervaloBundle:Intervalo')->findBy(array('pozo' => $idpozo), array('id' => 'ASC'));
    $actividades = $em->getRepository('ActividadBundle:ActividadDiaria')->findBy(array('pozo' => $idpozo), array('id' => 'ASC'));


    $tiempoXIntervalo = array();

    foreach ($activityCollections as $activityCollection) //Dias
    {
        $fechaActCole = $activityCollection->getFecha();

        foreach ($intervalos as $intervalo) //Intervalos
        {
            if ($intervalo->getFechaInicio() <= $fechaActCole && $intervalo->getFechaFinal() >= $fechaActCole) {
                $temp = array();
                $temp[] = $intervalo.'';


                foreach ($actividades as $actividad) //Actividades
                {

                    if ($actividad->getCollection()->getId() == $activityCollection->getId()) {
                        $duracion[] = $actividad->getDuracion();
                    }

                }
                $temp[] = array_sum($duracion);

            }

        }
        $tiempoXIntervalo[] = $temp;


    }

     return array('tiempoXIntervalo'=> (json_encode($tiempoXIntervalo)));

Template.Twig

            title: {
                text: 'Distribución de tiempo por Intervalo'
            },
            xAxis: {
                reversed: false,
                title: {
                    enabled: true,
                    text: 'Dias'
                },
                labels: {
                    formatter: function () {
                        return this.value;
                    }
                },
                maxPadding: 0.05,
                showLastLabel: true,
                allowDecimals: false,
                min:0,
            },
            yAxis: {
                max:0,
                startOnTick: false,
                title: {
                    text: 'Profundidad [m]'
                },
                labels: {
                    formatter: function () {
                        return this.value;
                    }
                },
                lineWidth: 2,

            },
            legend: {
                enabled: true
            },

            tooltip: {
                pointFormat: '{series.name}: <b>{point.y}h ({point.percentage:.1f}%)</b>'
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: false
                    },
                    showInLegend: true
                }
            },
            series: [{
                data:{{tiempoXIntervalo}}
            }]
        });
    });

</script>

2 个答案:

答案 0 :(得分:1)

您应该查看ChatColor.translateAlternateColorCodes的方法 此外,& quot;还有一个额外的空间 它应该是&quot;

json_encode期待&#34;所以它应该是["Intermediate 17.5 inches",2220]

答案 1 :(得分:1)

谢谢费尔南多,但你的解决方案对mi不起作用。 显然问题是Twig autoescaping变量。我尝试使用Twig的原始过滤器来跳过自动转换,这对mi来说很有用。这里的解决方案

数据:$ .parseJSON('{{tiempoXIntervalo | raw}}')