在CakePHP中使用HighchartsPHP库

时间:2013-09-18 09:15:18

标签: php cakephp highcharts

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

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

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

HighchartsPHP

当我尝试设置一个新的App::import('HighchartsPHP', 'Highchart'); 对象时,我遇到了

  
    

错误:找不到类'Highchart'

  

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


假设上面已经解决了,我假设我会从控制器中的数据构建实际图表,然后将图表对象传递给视图进行渲染?所以在我在控制器中的一个页面操作中,我可能会把

Highchart

然后

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

传递到我将使用以下内容渲染图表的视图:

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

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:-1)

他意图实施lalibrería,pero me da错误:“Highchart”Clase no encontrada。

他usado para importar la libreria 2 formas:

dependencies {
    compile project(':fooBar');
} 

Pero sin importar falla。

他是一名建筑主义者,他是一名建筑师,他是“HOLA MUNDO”,一名副官,一名女子,一名女子,一名女子,一名女子,一名女子

rootProject.name = 'fooBar'

include ':fooBar'

Mi控制:

App::import('Vendor', 'HighchartsPHP', array('file' => 'HighchartsPHP'.DS.'Highchart.php'));

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

La libreria la he descargado de:

https://github.com/ghunti/HighchartsPHP/tree/master/src

Estoy usando cakephp 2.x