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
    ],
]);