从symfony控制器返回json数组,用于highcharts.js上的多种用法

时间:2015-05-04 12:39:10

标签: javascript arrays json highcharts doctrine

这是我的symfony控制器的代码:

$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中将它们用于不同的东西,我该怎么办呢?

也就是说,我想:

  
      
  • 第一个学说查询的第一个响应,以便拥有系列(图片列)
  •   
  • 第二个学说查询的第二次响应是针对 yAxis
  • 中的设置数据进行的   
  • 第三个学说查询的第三次响应是针对 xAxis
  • 中的设置数据进行的   

所以我想返回许多对应于许多教条查询的数组,但是为了在我的视图中使用它们来设置我的图表。

请注意,我想要的结果不是数组数组,我想返回许多这样的数组,并在我的高清脚本中使用它们:

/*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);
    });
});

所以在这里,我现在唯一的数组来自我的第一个查询,对应于我数据库中的数值,并在此处用于高图图形系列(柱形图)。现在我想再做两个查询来设置yAxis和xAxis。

1 个答案:

答案 0 :(得分:1)

编码的json只是纯文本,你可以这样做,例如:

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

在此示例中,json字符串由换行符分隔。