2

我正在尝试使用根据学说查询结果创建的 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

4

1 回答 1

4

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

var data = {{ result|raw }};

附带说明一下,我编写了一个小型Flot 库Symfony Flot 包,可帮助您将 PHP 数组转换为常见的 Flot 格式,如饼图、折线图、条形图等。它可能对您帮助为 Twig 准备数据有所帮助.

于 2014-12-29T23:50:16.687 回答