下面是我在我的代碼查詢的var_dump:試圖把DQL查詢到Highcharts陣列,儘管陣列返回0被填充
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_dump中,我得到了我需要的數據。這裏的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 Bundle的文檔在這方面完全沒有。讓我知道是否有人有任何線索。謝謝!
以下是json_encode($ series,JSON_NUMERIC_CHECK)的var_dump。也許這將有助於:
string'[[{「barbell_curl_1_weight」:15},{「barbell_curl_1_weight」:20},{「barbell_curl_1_weight」:25},{「barbell_curl_1_weight」:20}],{「name」 :「weight」,「data」:[{「barbell_curl_1_weight」:15},{「barbell_curl_1_weight」:20},{「barbell_curl_1_weight」:25},{「barbell_curl_1_weight」:20}]}]'(length = 266)
你可以使用'$ ob = json_encode($ ob,JSON_NUMERIC_CHECK);'然後傳遞給系列 –
我不太在意。我已經有$ ob = new Highchart()。這個工作到底如何?如果你能澄清一點,那會很棒。謝謝你的時間。 –
我的錯誤,應該是'$ series = json_encode($ series,JSON_NUMERIC_CHECK);' –