我正在尝试在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 :这是否正确,如果不是,我应该怎么做?
答案 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