繁体   English   中英

highchart查看cakephp 2.4中的视图

[英]highchart to views in cakephp 2.4

我试图将HighCharts与ChakePHP 2.4。*一起使用,但找不到在“视图”中查看图表的好方法。
我已经通过GitHub安装cakephp-high-charts-plugin 如果我转到演示路径,它会运行,但是当我在plugins目录之外使用控制器时,
<?php echo $this->HighCharts->render('ManageStates'); ?>

Cake PHP返回

错误:找不到图表:“ 1”。 确保图表名称与视图中传递给$ this-> HighCharts-> render()的字符串相同。 文件:/var/www/armoire/app/Plugin/HighCharts/View/Helper/HighChartsHelper.php行:99

我的控制器:

class CreagraphsController extends AppController {
    public $name = 'Graphique etats';
    public $components = array('HighCharts.HighCharts');
    public $helpers = array('HighCharts.HighCharts');
    public $uses = array();
    public function Creagraphs() {
        $chartName = 'ManageStates';
    $mychart = $this->HighCharts->create( $chartName,'column' );
        $this->HighCharts->setChartParams
            (
                $chartName
                );
    }
}

我可以使用我的目录控制器来创建图表,如何执行此操作?

就像我在这里自己说的那样; 渲染时cakephp highchart致命错误

该插件尚未在高于1.3的任何其他版本中进行测试,因此无法正常工作。 开发人员正在为2.5创建一个新版本,应该很快发布。 :)

CakePHP Highcharts插件旨在支持CakePHP 2. *及更高版本,而不支持该版本之前的版本。 另外,该插件中包含的示例旨在用作有关如何设置自己的控制器和视图以在自己的项目中呈现图表的用法指南。

有人问这个问题:“我可以使用目录控制器来创建图表吗,我该怎么做?”

答案是可以的,您应该使用目录控制器来创建图表。 您如何去做呢? 简单:

  1. 在您的DirectoriesController.php文件中,将Highcharts插件组件添加到控制器组件中public $components = array('Highcharts.Highcharts'); 这还将把Highcharts插件帮助程序自动加载到您的视图中(该组件将为您处理)。
  2. 创建或修改要为其设置图表以包括以下内容的控制器操作(如果要使用例如饼图的话):

public function pie() {
        // N.B your $chartData array will be accessed from your model
        $chartData = array(
            array(
                'name' => 'Chrome',
                'y' => 45.0,
                'sliced' => true,
                'selected' => true
                 ),
            array('IE', 26.8),
            array('Firefox', 12.8),
            array('Safari', 8.5),
            array('Opera', 6.2),
            array('Others', 0.7)
        );
        $chartName = 'Pie Chart';
        $pieChart = $this->Highcharts->create( $chartName, 'pie' );
        $this->Highcharts->setChartParams(
                                            $chartName,
                                            array
                                            (
                                                'renderTo'  => 'piewrapper',  // div to display chart inside
                                                'chartWidth' => 1000,
                                                'chartHeight' => 750,
                                                'chartTheme' => 'gray',
                                                'title'  => 'Browser Usage Statistics',
                                                'plotOptionsShowInLegend' => TRUE,
                                                'creditsEnabled'  => FALSE
                                            )
        );
        $series = $this->Highcharts->addChartSeries();
        $series->addName('Browser Share')
            ->addData($chartData);
        $pieChart->addSeries($series);
    }
  1. 创建或修改目录视图文件夹以包含一个名为pie.ctp的文件(以匹配您的控制器操作的名称),并添加以下代码:

    一个非常不起眼的饼图,带有图例
      <div id="piewrapper" style="display: block; float: left; width:90%; margin-bottom: 20px;"></div> <?php echo $this->Highcharts->render('Pie Chart'); ?> 

这里应注意两点:

  • 您的视图必须包含一个div ID,该ID与您为传递给控制器​​操作中$this->Highcharts->setChartParams()的数组中的“ renderTo ”键指定的值匹配。
  • 在控制器中为$chartName设置的值必须与在视图中传递给调用$this->Highcharts->render()的值相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM