Symfony 2.6 - Flot图表无法从JSON正确填充

时间:2014-12-29 21:59:31

标签: json symfony doctrine-orm flot symfony-2.6

我尝试使用从教条查询结果创建的JSON填充Flot Pie图表,但未成功。 这是详细信息...

控制器:

$resultJson = json_encode($query);

return $this->render('default/index.html.twig', array( 'result' => $resultJson ));

JSON结果:

[{"label":"project 1","data":"5"},
 {"label":"project 2","data":"1"},
 {"label":"project 3","data":"1"}]

使用Javascript:

var data = '{{ result}}';
var options = {
        series: {
            pie: {
                show: true,
                label: {
                    show: true,
                    radius: 0.8,
                    formatter: function (label, series) {
                        return '<div style="...">' +
                        label + ' : ' +
                        Math.round(series.percent) +
                        '%</div>';
                    },
                    background: {
                        opacity: 0.8,
                        color: '#000'
                    }
                }
            }
        }
    };

    $.plot($("#flot"), data, options);

当前结果(未定义的标签和一个以上的标签):http://oi61.tinypic.com/28srjut.jpg

期望的结果:http://oi59.tinypic.com/sncwtx.jpg

1 个答案:

答案 0 :(得分:4)

您应该删除所述的单引号,并且您需要输出不转义。 Twig会自动将双引号转义为“安全”,但这不是你想要的。它应该是:

var data = {{ result|raw }};

作为旁注,我写了一个小Flot librarySymfony Flot bundle,它有助于将PHP数组转换为常见的Flot格式,如饼图,折线图,条形图等。它可能有一些用处你可以帮助为Twig准备数据。