2017-03-13 72 views
1

我今天在一个symfony3项目中开始使用Highcharts,并且线条图工作得很好。我在绘制饼图时遇到了问题,我在墙上敲打我的头,试图弄清楚为什么它不起作用。Symfony3 Highcharts饼图空白

如果我直接在我的树枝模板中使用javascript呈现,我可以重现基本的饼图(如this one),并且它看起来和预期的一样。但如果我尝试从我的控制器渲染,我会在饼图应该是空白图像。我的图表标题在那里,所以我知道我正在渲染到正确的div。但图表是空白的。我甚至尝试过非常简单的数据结构(如docs所建议的数组数组),但没有运气。这一定很简单。帮帮我!

我的控制器:

public function piechartAction() 
{ 
    $data = [["name"=> 'Microsoft Internet Explorer', "y"=> 56.33], 
     ["name"=> 'Chrome', "data"=> 24.03], 
     ["name"=> 'Firefox', "y"=> 10.38], 
     ["name"=> 'Safari', "y"=> 4.77], 
     ["name"=> 'Opera', "y"=> 0.91], 
     ["name"=> 'Proprietary or Undetectable', "y"=> 0.2]]; 

    $ob = new Highchart(); 
    $ob->chart->renderTo('container'); 
    $ob->chart->type('pie'); 
    $ob->title->text('My Pie Chart'); 
    $ob->series(array("data"=>$data)); 

    return $this->render('dashboard/test.html.twig', [ 
     'mypiechart' => $ob 
    ]); 
} 

而且我树枝模板

{% extends 'base.html.twig' %} 

{% block javascripts %} 
    {{ parent() }} 

    <script src="//code.highcharts.com/highcharts.js"></script> 
    <script src="//code.highcharts.com/modules/exporting.js"></script> 
    <script> 
     jQuery(document).ready(function() { 
      {{ chart(mypiechart) }} 
     }); 
    </script> 
{% endblock %} 

{% block body %} 
    <div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div> 
{% endblock %} 
+0

什么是你使用的PHP库? – goto

+0

PHP版本5.6.3,Symfony v.3.2.6 – ehymel

+0

我还应该指出,我正在使用https://github.com/marcaube/ObHighchartsBundle – ehymel

回答

1

我解决了这个。对于任何未来的人,以下是我的错: 我的系列数据设置不是正确的格式。

这是我新的(工作)控制器:

public function piechartAction() 
{ 
    $data = [ 
     ['Microsoft Internet Explorer', 56.33], 
     ['Chrome', 24.03], 
     ['Firefox', 10.38], 
     ['Safari', 4.77], 
     ['Opera', 0.91], 
     ['Proprietary or Undetectable', 0.2] 
    ]; 

    $ob = new Highchart(); 
    $ob->chart->renderTo('container'); 
    $ob->chart->type('pie'); 
    $ob->title->text('My Pie Chart'); 
    $ob->series(array(array("data"=>$data))); 

    return $this->render('dashboard/test.html.twig', [ 
     'mypiechart' => $ob 
    ]); 
} 

我发现这个通过研究 “食谱” 该软件包(here)相关联;有一个下钻式饼图的清单。