我正在尝试生成一个简单的温度数据折线图。数据库中的表如下所示:
CREATE TABLE temperature(
id INTEGER PRIMARY KEY NOT NULL,
locationId INTEGER,
value REAL NOT NULL,
createDate DATETIME NOT NULL,
FOREIGN KEY(locationId) REFERENCES location(id));
我感兴趣的列是:createDate
和value
。
我正在尝试使用EFlot,它希望以数组数组的形式提供数据,例如:
'data'=>array(
array(1,1),
array(2,7),
array(3,12),
array(4,32),
array(5,62),
array(6,89),
),
当我使用这样的静态数组时,我的浏览器会显示如下脚本数据:
... [{'label':'line','data':[[1,1],[2,7],[3,12],[4,32],[5,62],[6,89]], ...
并且图表自然可以正常工作。
但是,我无法从模型中动态地制定数据。我尝试了以下示例:
$arr = Yii::app()->db->createCommand('SELECT id, value FROM temperature')->queryAll();
....
'data'=>$arr,
评估为:
... $.plot($('#yw2'), [{'label':'line','data':[{'id':'949','value':'20.812'},{'id':'950','value':'20.875'},{'id':'951','value':'21.125'},{'id':'952','value':'21.25'},{'id':'953','value':'21.312'},{'id':'954','value':'21.375'}], ....
并且图表不起作用。
我想,最终目标是为模型提供一个功能,所以我可以像这样使用它:
...
'data'=>$model->getGraphData(),
....
但是,如何构造这样的函数呢?它应该返回什么才能使该图表正常工作?