温度データの簡単な折れ線グラフを生成しようとしています。データベース内のテーブルは次のようになります。
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(),
....
しかし、そのような関数をどのように構築するのでしょうか?このグラフを機能させるには、何を返す必要がありますか?