首先,对不起,如果我在这个问题上寻求帮助,但我已经在这方面工作了将近一天。我搜索了这个网站,并找到了一个类似于我的问题的帖子,但我无法让它工作。
无论如何,我正在使用CakePHP 2.x,我需要通过图表显示报告。我看到了CakePHP CakePHP GoogleCharts Plugin by Scott Harwell的这个插件。我一步一步地做了一切,不知怎的,我的观点一直空洞。我确定这不是因为文件冲突所以我决定制作一个新的CakePHP项目,不幸的是,它没有用。
以下是我的代码:
控制器:
<?php
App::uses('AppController', 'Controller');
App::uses('GoogleCharts', 'GoogleCharts.Lib');
class ChartsController extends AppController {
public $uses = array('Student');
public $helpers = array('GoogleCharts.GoogleCharts');
public function test_chart(){
$student= $this->Student->getStudentAges();
$studentAgesChart= new GoogleCharts();
$studentAgesChart->type('LineChart');
$studentAgesChart->options(array('title' => "Student Ages"));
$studentAgesChart->columns(array(
//Each column key should correspond to a field in your data array
'name' => array(
'type' => 'string',
'label' => 'Student Name'
),
'age' => array(
'type' => 'number',
'label' => 'Student Age'
)
));
foreach($student as $row){
$studentAgesChart->addRow(array('age' => $row['Student']['age'], 'name' => $row['Student']['name']));
}
$this->set(compact('studentAgesChart'));
debug($studentAgesChart);
}
}
?>
查看:
<div id="chart_div" >
<?php
$this->GoogleCharts->createJsChart($studentAgesChart);
?>
</div>
调试($ studentAgesChart):
object(GoogleCharts) {
[private] type => 'LineChart'
[private] columns => array(
'name' => array(
'type' => 'string',
'label' => 'Student Name'
),
'age' => array(
'type' => 'number',
'label' => 'Student Age'
)
)
[private] rows => array(
(int) 0 => array(
(int) 0 => 'Student 1',
(int) 1 => '17'
),
(int) 1 => array(
(int) 0 => 'Student 2',
(int) 1 => '16'
)
)
[private] options => array(
'width' => (int) 400,
'height' => (int) 300,
'title' => 'Student Ages',
'titleTextStyle' => array(
'color' => 'red'
)
)
[private] callbacks => array()
[private] div => 'chart_div'
}
型号:
public function getStudentAges(){
$student_ages = $this->find('all',
array(
'order' => array('Student.name' => 'ASC'),
'limit' => 3,
'fields' => array(
'Student.name',
'Student.age'
)
)
);
return $student_ages;
}
我看到它的方式,它不包含任何错误,但我的视图是空的。
答案 0 :(得分:0)
@Scrappy,当您在页面上查看源代码时,您是否看到DOM中包含的任何输出(JavaScript或HTML)?或者,该插件根本没有生成任何内容?如果您确实看到添加了JavaScript代码,那么您的页面是否在控制台中报告JS错误,这可能会阻止图表正确加载?如果您没有看到JS代码,那么您可能没有在引导程序文件中加载插件。
该网页是否可在公共互联网上查看?
该插件在几年内没有看到我的更新,但有一些开发人员已经分叉并为CakePHP 3.0更新了它。但是,除非谷歌的某些内容发生了变化,否则这个版本应该仍然可以正常工作,我相信如果是这样的话我会听说过。