具有来自数据库Yii2的数据的Highchart js

时间:2018-07-24 01:49:57

标签: php highcharts yii2

我试图通过数据提供程序将数据库中的数据放入highchart的“系列”。我使用this小部件。现在,图表已呈现,但是我遇到了类别的另一个问题,如您在打印屏幕上所见。

index.php

我猜print_r看起来不错:

image

我该如何解决问题?

2 个答案:

答案 0 :(得分:0)

$data = $provider->getModels();

$barData = array();
$xAxis = array();

if(is_array($data)) {
    foreach ($data as $row) {
        $barData[] = [
            'name' => $row['strategy_title'],
            'data' => [(float) $row['strategy_current_money']]
        ];  
        $xAxis[] = [
            'categories' => $row['strategy_title'],
        ];
    }
}

尝试这样。我不确定我是否理解得很好,但会尝试提供帮助。我用[]解决了您的第一个问题。对于其他问题,您必须更具体。

答案 1 :(得分:0)

经过数小时的阅读后,我决定恢复记录,并找到了问题https://github.com/miloschuman/yii2-highcharts/blob/master/doc/examples/series-data-helper.md的解决方案

<?php

use yii\helpers\Html;
use yii\helpers\ArrayHelper;
use yii\helpers\Url;
use miloschuman\highcharts\Highcharts;
use miloschuman\highcharts\SeriesDataHelper;
/* @var $this yii\web\View */

$data = $provider->getModels();
$dataProvider = new \yii\data\ArrayDataProvider(['allModels' => $data]);

?>

<div class="container">
    <div class="row">
        <div class="col-md-12 col-sm-12 strategy_bar">
        <?php 
            echo Highcharts::widget([
                'options' => [
                    'title' => ['text' => 'Basic Example'],
                    'yAxis' => [
                        ['title' => [
                            'text' => 'OHLC'
                            ]
                        ],
                    ],
                    'series' => [
                        [
                            'type' => 'column',
                            'name' => new SeriesDataHelper($dataProvider, ['strategy_title']),
                            'data' => new SeriesDataHelper($dataProvider, ['strategy_current_money:int']),
                        ],
                    ]
                ]
            ]);
        ?>
        </div>
    </div>
</div>

enter image description here