从Symfony Controller返回JSON阵列,用于HighCharts.js上的许多用法



这是我的Symfony Controller的代码:

$em=$this->getDoctrine()->getManager();
$queryIndex = $em->createQuery( 'SELECT g.index
                                    FROM MySpaceMyBundle:Graphique g');
$array = array_map('current', $queryIndex);
$response = new Response();
$data = json_encode($array, JSON_NUMERIC_CHECK);
$response->headers->set('Content-Type', 'application/json');
$response->setContent($data);
return $response;

此PHP脚本将我返回一个带数字式最好中心的数组,因此此代码将我返回以下JSON响应:

[1700,1200,1200,1304,1800,2012,2048,1048,3000,5421]

但是,如果我的控制器中有许多查询,我该如何继续进行highchart.js中的不同事物?

也就是说,我想要:

  • 第一个学说查询的响应,以使 series (图形的列)
  • 第二第二个学说查询的响应是为 yaxis
  • 中的set datas进行的。
  • 第三第三学说查询的响应是为 xaxis
  • 中的set datas进行的。

所以我想返回许多与许多学说查询相对应的数组,但是要将它们用于在我的视图中设置我的图表。

请注意,我想要的不是数组数组,我想返回许多类似的数组,并在我的Highchart脚本中使用它们:

/*the first array of my first query*/
[1700,1200,1200,1304,1800,2012,2048,1048,3000,5421]
/*the second array of my second query*/
[200,558,...........,154]
/*the third array of my third query*/
[another array of numeric values]
...

不是这样:

{ "my_first_result": [1700,1200,1200,1304,1800,2012,2048,1048,3000,5421], "my_other_result" : [200,558,...........,154] }
or
[[first array], [second array], ...]

这是在我看来渲染图表的脚本:

$(document).ready(function() {
    var options = {
        chart: {
            renderTo: 'container',
            type: 'column'
        },
        series: [{}]
    };
    var url =  "{{ path('myPathToMyPage') }}";
    $.getJSON(url,  function(data) {
        options.series[0].data = data;
        var chart = new Highcharts.Chart(options);
    });
});

因此,在这里,我暂时拥有的唯一数组来自我的第一个查询,对应于我的数据库中的数字值,并在此处用于HighChart Graphic的Serie(列图)。现在,我想为了设置yaxis和xaxis。

编码的JSON只是纯文本,例如:

$data = json_encode($array, JSON_NUMERIC_CHECK) . "n" . json_encode($array2, JSON_NUMERIC_CHECK);

在此示例中,JSON字符串由换行线界定。

最新更新