モデルにカスタムデータプロバイダーがあります
これをコントローラーで試してみました
public function actionMonthTotal()
{
$model=new Rapporti();
$this->render('monthTotal',array(
'dataProvider'=>$model->monthTotal(),
));
}
ここで、monthTotalは、DataProviderを提供するモデル関数です。
実際、「monthTotal」はview.phpのコピー/過去であり、_monthTotalを使用するclistViewを使用します。これは、_view.phpのコピー/過去です。
dataProvider('SELECT COUNT、SUM、SUMなど... ")からデータセットを取得し、レコードセットを反復処理して、単純なTABLEをmonthTotalビューにエコーする必要があります。
ビューからdataProviderを使用してレコードを取得する方法と、トラフの再実行を繰り返す方法は?
私の月の合計はこれで、「レポート」モデルにあります
実際、レポートはレポートN-> 1 Pionieratoの関係にあります(イタリア語で申し訳ありませんが、オブジェクト名のみです)
public function totalMonth() {
$criteria = new CDbCriteria();
$criteria->with = array ('pionierato');
$criteria->condition = 'dataBetel=:month';
$criteria->select = "COUNT(t.id) as numProclamatori,
pionierato.tipo as tipoPionierato,
SUM(libri) as sommaLibri,
SUM(opuscoli) as sommaOpuscoli,
SUM(ore) as sommaOre,
SUM(riviste) as sommaRiviste,
SUM(visite) as sommaVisite,
SUM(studi) as sommaStudi";
$criteria->group = "t.dataBetel, t.pionieratoId";
$criteria->params = array ('month' => "2012-09-01");
$dataProvider=new CActiveDataProvider('Rapporti',
array ('criteria' => $criteria)
);
return $dataProvider;
}
このデータプロバイダーを使用して、3行のテーブルを出力および印刷する3レコードを取得する必要があります。静的。
最初の答えからの提案を使用して、私はこれを得ました: