0

我正在尝试在 CakePHP 中使用 ghunti 的HighchartsPHP包装器,以便可以在我的项目中使用它。

在演示中,它说要编辑config.php并包含脚本,然后您就可以访问Highchart该类来构建图表。这适用于平面 php 项目,但我猜在 MVC 中它的工作方式有点不同。

第一步是如何在我的应用程序中包含该库。我已将文件放在Vendor名为文件夹的目录中,HighchartsPHP并在我的控制器文件中放置了代码

App::import('HighchartsPHP', 'Highchart');

当我尝试实例化一个新Highchart对象时,我遇到了

错误:找不到类“Highchart”

问题 1:在我的项目中包含这个库的正确方法是什么?


假设上述问题已解决,我想我会根据控制器中的数据构建实际图表,然后将图表对象传递给视图进行渲染?因此,在控制器中的一个页面操作中,我可能会放置

$chart = new Highchart();
$chart->series[0]->name = 'Tokyo';
$chart->series[0]->data = array(7.0, 6.9, 9.5);

接着

$this->set( compact( 'chart' ) );

传递到我将在其中呈现图表的视图:

<?php echo $chart->render("chart"); ?>

问题2:这是正确的,如果不是,我应该怎么做?

4

1 回答 1

2

你的控制器应该是这样的:

<?php
App::import('Vendor', 'HighchartsPHP/Highchart');

class ChartsController extends AppController {

    public function index() {        

        $chart = new Highchart();

        $chart->chart = array(
            'renderTo' => 'container', // div ID
            'type' => 'line'
        );

        $chart->series[0]->name = 'Tokyo';
        $chart->series[0]->data = array(7.0, 6.9, 9.5);

        $this->set( compact( 'chart' ) );
    }

}

和 index.ctp:

<?php $chart->printScripts(); ?>

<script type="text/javascript">
    <?php echo $chart->render("chart");?>
</script>
于 2013-09-18T12:13:57.920 回答