Php 尝试将DQL查询放入Highcharts数组中,尽管数组已填充,但返回0
以下是代码中我的查询的var_转储:Php 尝试将DQL查询放入Highcharts数组中,尽管数组已填充,但返回0,php,symfony,highcharts,bundle,dql,Php,Symfony,Highcharts,Bundle,Dql,以下是代码中我的查询的var_转储: array (size=2) 0 => array (size=4) 0 => array (size=1) 'barbell_curl_1_weight' => int 15 1 => array (size=1) 'barbell_curl_1_weight' => int 20 2 => array (size=1) 'bar
array (size=2)
0 =>
array (size=4)
0 =>
array (size=1)
'barbell_curl_1_weight' => int 15
1 =>
array (size=1)
'barbell_curl_1_weight' => int 20
2 =>
array (size=1)
'barbell_curl_1_weight' => int 25
3 =>
array (size=1)
'barbell_curl_1_weight' => int 20
我的问题是:
/**
* @param User $user
* @param String $col
* @return array
*/
public function getStatsForStatsByDQL(User $user, String $col)
{
$parameters = (array('user' => $user,
));
$em2 = $this->getDoctrine()->getManager()
->getRepository('AppBundle:ExerciseStats')
->createQueryBuilder('g')
->setParameters($parameters)
->where('g.user = :user')
->select('g.'. $col)
->setMaxResults(12)
->join('g.user', 'user')
->orderBy( 'g.'. 'timestamp','ASC')
->getQuery()->getResult(Query::HYDRATE_ARRAY);
return $em2;
}
正如您从var_转储中看到的,我正在获取所需的数据。下面是它的Highcharts函数:
/**
* @return \Symfony\Component\HttpFoundation\Response
* @Route ("user/stats", name="user_stats")
*/
public function chartAction()
{
$user = $this->getUser();
// Chart
$query = $this->getStatsForStatsByDQL($user,
ExerciseConsts::BARBELL_CURL_1_WEIGHT);
$series = array($query, array("name" => "weight", "data" =>
$query));
$ob = new Highchart();
$ob->chart->renderTo('linechart');
$ob->title->text('Barbell Curl Weight');
$ob->xAxis->title(array('text' => "Workouts"));
$ob->yAxis->title(array('text' => "Weight"));
$ob->series($series);
return $this->render('user/stats.html.twig', array(
'chart' => $ob
));
}
所以我得到的只是0。在xdebug中使用断点时,我得到以下信息:
1 = {array} [2]
name = "weight"
data = {array} [4]
0 = {array} [1]
barbell_curl_1_weight = 15
1 = {array} [1]
barbell_curl_1_weight = 20
2 = {array} [1]
barbell_curl_1_weight = 25
3 = {array} [1]
barbell_curl_1_weight = 20
如何提取权重并将其放入Highchart图表?Highcharts捆绑包的文档在这方面完全缺乏。如果有任何线索,请告诉我。谢谢
这里是json编码的var_转储($series,json_NUMERIC_CHECK)。也许这会有帮助:
字符串“[{”barbell_curl_1_weight:15},{”barbell_1_weight:20},{”barbell_curl_1_weight:25},{”barbell_1_weight:20},{”name:“weight”,“data”:[{”barbell_curl_1_weight:15},{”barbell_curl_1_1_weight:20},{“barbell_1_weight:25},{barbell_curl_=20}找到了解决方案。当我们处理多维数组时,Highcharts没有深入到第一个数组之外,第一个数组返回0。下面是我返回每个数组值的迭代:
$temp = array();
foreach($array as $k=>$v){
if(is_array($v)){
foreach($v as $key=>$value){
$temp[] = $value;
}
}
}
现在,我只需要用$query替换$temp,瞧,图表正确地呈现了所有值 您可以使用
$ob=json\u encode($ob,json\u NUMERIC\u CHECK)代码>然后传递到序列我不太明白。我已经有$ob=new Highchart()。这到底是怎么回事?如果你能澄清一点,那就太好了。谢谢你的时间。我错了,应该是$series=json\u encode($series,json\u NUMERIC\u CHECK)代码>好的,但是$query去哪里了?由于$series现在被json_encode.removejson_encode
替换,请告诉我highcharts脚本中前端ie(html)的内容,您可以使用它