Highcharts 如何在Yii2 Highchart中传递数据库值

Highcharts 如何在Yii2 Highchart中传递数据库值,highcharts,yii2,Highcharts,Yii2,我正在尝试从存储库中使用Yii2和highchart小部件创建图表 这是我的海图代码: echo Highcharts::widget([ 'scripts' => [ 'highcharts-more', 'modules/exporting', 'themes/grid' ], 'options' => [ 'title' =>

我正在尝试从存储库中使用Yii2和highchart小部件创建图表

这是我的海图代码:

echo Highcharts::widget([
        'scripts' => [
            'highcharts-more',   
            'modules/exporting', 
            'themes/grid' 
        ],
        'options' => [
          'title' => ['text' => NULL],
          'xAxis' => ['categories' => $chart_x_axis],
          'yAxis' => ['title' => ['text' => 'Income']],
          'series' => $data_series, 
          'credits' => ['enabled' => false],
        ],
    ]);
首先,我手动创建数据系列:

$data_series = array(
    array(
        'name'=>'February',
        'data'=>array(10000,20000,3000),
    ),array(
        'name'=>'November',
        'data'=>array(20000,10000),
    ),array(
        'name'=>'December',
        'data'=>array(20500),
    )
);
结果如下:

=================Json Format : 
[{"name":"February","data":[10000,20000,3000]},{"name":"November","data":[20000,10000]},{"name":"December","data":[20500]}]
 ================= Array Format : 
Array
(
    [0] => Array
        (
            [name] => February
            [data] => Array
                (
                    [0] => 10000
                    [1] => 20000
                    [2] => 3000
                )

        )

    [1] => Array
        (
            [name] => November
            [data] => Array
                (
                    [0] => 20000
                    [1] => 10000
                )

        )

    [2] => Array
        (
            [name] => December
            [data] => Array
                (
                    [0] => 20500
                )

        )

)
高位图表正常显示
但当我尝试从模型加载时,结果与上面相同:

=================Json Format : 
[{"name":"February","data":["3000","10000","20000"]},{"name":"November","data":["10000","20000"]},{"name":"December","data":["20500"]}]
 ================= Array Format : 
Array
(
    [0] => Array
        (
            [name] => February
            [data] => Array
                (
                    [0] => 3000
                    [1] => 10000
                    [2] => 20000
                )

        )

    [1] => Array
        (
            [name] => November
            [data] => Array
                (
                    [0] => 10000
                    [1] => 20000
                )

        )

    [2] => Array
        (
            [name] => December
            [data] => Array
                (
                    [0] => 20500
                )

        )

)

数据系列未显示。谁能告诉我哪里出了问题吗?

在您的模型创建方法中:

public method getData(){
   $data_series = array(
    array(
        'name'=>'February',
        'data'=>array(10000,20000,3000),
    ),array(
        'name'=>'November',
        'data'=>array(20000,10000),
    ),array(
        'name'=>'December',
        'data'=>array(20500),
    )
);

return  $data_series;
}
在你看来

use use app\models\highchart;
echo Highcharts::widget([
        'scripts' => [
            'highcharts-more',   
            'modules/exporting', 
            'themes/grid' 
        ],
        'options' => [
          'title' => ['text' => NULL],
          'xAxis' => ['categories' => $chart_x_axis],
          'yAxis' => ['title' => ['text' => 'Income']],
          'series' => $highchar->getData, 
          'credits' => ['enabled' => false],
        ],
    ]);

对不起,这是我的愚蠢。 这个问题已经解决了

我不知道highcart接受整数数据类型,因此我将代码更改为:

foreach ($months as $m)
{
    $_data_series[] = $m["omset_nominal"];
}
进入:

foreach ($months as $m)
{
    $_data_series[] = (int)$m["omset_nominal"];
}

它不起作用,您的代码只是在控制器中静态地移动到模型中:)我需要的是,将数据系列从数据库加载到highchart数据系列中,然后您应该正确地提问。很抱歉,让您对我的问题@Amitesh:)感到困惑