yii2:来自数据库的动态 dosamigos HighCharts
yii2 : dynamic dosamigos HighCharts from database
我需要生成一个动态的 Highcharts 从数据库中获取数据,所以我尝试按照这里的示例进行操作:
https://github.com/2amigos/yii2-highcharts-widget
在我的控制器中:
public function actionReports()
{
$data= User::find()
->select(['COUNT(*) AS count,gender '])
->groupBy(['gender'])
->all();
return $this->render('reports',[
'data' => $data,
]);
}
在我看来:
<?php
use dosamigos\highcharts\HighCharts;
foreach ($data as $user) {
$gender= "['name'=>'".$user->gender."','data'=>[".$user->count."]],";
print_r($gender);
}
echo \dosamigos\highcharts\HighCharts::widget([
'clientOptions' => [
'chart' => [
'type' => 'bar'
],
'title' => [
'text' => 'By Gender'
],
'yAxis' => [
'title' => [
'text' => 'Genders'
]
],
'series' =>[ $gender,]
]
]);
?>
但在那之后出现了问题,因为没有图表出现,
但在
$gender
有使图表工作所必须的数据:
['name'=>'female','data'=>[1]],['name'=>'male','data'=>[4]],
`
Highchart 要求数据作为整数,但活动记录 returns 它作为字符串。我们必须将类型转换为整数。
$data = User::find()
->select(['COUNT(*) AS count,gender'])
->groupBy('gender')
->asArray()
->all();
foreach ($data as $user) {
$gender[] = ['name' => $user['gender'], 'data' => [(int) $user['count']]];
}
echo HighCharts::widget([
'clientOptions' => [
'chart' => [
'type' => 'bar',
],
'title' => [
'text' => 'By Gender',
],
'yAxis' => [
'title' => [
'text' => 'Genders',
],
],
'series' => $gender
],
]);
我需要生成一个动态的 Highcharts 从数据库中获取数据,所以我尝试按照这里的示例进行操作:
https://github.com/2amigos/yii2-highcharts-widget
在我的控制器中:
public function actionReports()
{
$data= User::find()
->select(['COUNT(*) AS count,gender '])
->groupBy(['gender'])
->all();
return $this->render('reports',[
'data' => $data,
]);
}
在我看来:
<?php
use dosamigos\highcharts\HighCharts;
foreach ($data as $user) {
$gender= "['name'=>'".$user->gender."','data'=>[".$user->count."]],";
print_r($gender);
}
echo \dosamigos\highcharts\HighCharts::widget([
'clientOptions' => [
'chart' => [
'type' => 'bar'
],
'title' => [
'text' => 'By Gender'
],
'yAxis' => [
'title' => [
'text' => 'Genders'
]
],
'series' =>[ $gender,]
]
]);
?>
但在那之后出现了问题,因为没有图表出现,
但在
$gender
有使图表工作所必须的数据:
['name'=>'female','data'=>[1]],['name'=>'male','data'=>[4]],
`
Highchart 要求数据作为整数,但活动记录 returns 它作为字符串。我们必须将类型转换为整数。
$data = User::find()
->select(['COUNT(*) AS count,gender'])
->groupBy('gender')
->asArray()
->all();
foreach ($data as $user) {
$gender[] = ['name' => $user['gender'], 'data' => [(int) $user['count']]];
}
echo HighCharts::widget([
'clientOptions' => [
'chart' => [
'type' => 'bar',
],
'title' => [
'text' => 'By Gender',
],
'yAxis' => [
'title' => [
'text' => 'Genders',
],
],
'series' => $gender
],
]);