2013-11-04 33 views
0

我試過使用http://bakery.cakephp.org/articles/ixu38/2010/04/30/googlechart-api-helper,但我還沒有設法使它工作。關於CakePHP和谷歌圖表

  1. 我創建了助手GoogleChartHelperapp-->View-->Helper的代碼。

  2. 我已經建立了我控制器上這個功能:

    public function chart() { 
        $color = array(
         '#687e9b', 
         '#c4ccd8', 
        ); 
    
        $dataMultiple = array(array(0,1,2,3), array(4,5,6,7)); 
    
        $googleChart->setChartAttrs( 
         array(
          'type'  => 'bar-vertical', 
          'title'  => '', 
          'data'  => $dataMultiple, 
          'size'  => array(400, 200), 
          'color'  => $color, 
          'labelsXY' => true, 
          'min'  => array(min(rray(0,1,2,3)),min(array(4,5,6,7))), 
          'max'  => array(max(array(0,1,2,3)),max(array(4,5,6,7))), 
          'legend' => array('2008', '2009') 
         ) 
        ); 
    
    // Print chart 
        echo $googleChart; 
    
  3. 最後我把認爲,這一命令:

<?php echo $this->Html->link(__('Chart'), '/users/chart'); ?>

當我試圖使圖表,cakephp給我這個錯誤:

Error: Call to a member function setChartAttrs() on a non-object


問題在哪裏?

+1

我猜你需要更新你正在使用的GoogleCharts助手控制器代碼。 –

+0

怎麼樣?我不明白你的請求... – user2952750

+0

我把var $ helpers = array('GoogleChart')放在控制器上...問題在哪裏? – user2952750

回答

0

Try this helper for google chart和粘貼它app/view/helper 並使用下面

Controller: 

public $helpers = array('GoogleChart'); 

View: 

// example of bar chart 
echo $this->GoogleChart->create() 
    ->setType('bar', array('horizontal', 'grouped')) 
    ->setSize(500, 400) 
    ->setMargins(5, 5, 5, 5) 
    ->addData(array(1200.48, 432.3, 647.21, 635.2)) 
    ->addMarker('value', array('format' => 'f1', 'placement' => 'c')) 
    ->addData(array(20, 42.3, 65.21, 95.2)) 
    ->addMarker('value', array('size' => 14, 'color' => '000000')) 
    ->addAxis('x', array('labels' => array('jan 2012', 'feb 2012'))) 
    ->addAxis('y', array('axis_or_tick' => 'l', 'size' => 12)); 

// example of pie chart 
echo $this->GoogleChart->create() 
    ->setTitle('CHART TITLE', array('size' => 14, 'color' => '000000')) 
    ->setType('pie', array('3d')) 
    ->setSize(600, 300) 
    ->setMargins(10, 10, 10, 10) 
    ->addData(array(20, 35, 50, 10)) 
    ->setPieChartLabels(array('first', 'second', 'third', 'and so on...'));