我的模型
中有自定义数据提供程序我在控制器中尝试了这个
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获取记录以及如何通过recors迭代?
我的月总数是这个并且在'报告'模型
实际报告的关系是报告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行表。静态的。
使用第一个答案的建议,我得到了这个:
答案 0 :(得分:4)
我以这种方式获得了结果:
<?php
foreach ($dataProvider->getData() as $id => $singleRecord) {
$this->renderPartial('_monthTotal', array('data' => $singleRecord));
}
?>
并删除clistview小部件。
但是你的回答对我很有帮助,所以我会优先考虑你,谢谢!
答案 1 :(得分:3)
尝试:
public function actionMonthTotal()
{
$model = Rapporti::model()->monthTotal();
$this->render('monthTotal',array(
'dataProvider'=>$model,
));
}
这应该有效,你创建一个名为$ model的对象,其值等于Rapporti模型中方法monthTotal()的返回值
如果这不起作用,请检查您是否实际从monthTotal函数获取结果,方法是将其复制(减去返回部分)到控制器中,而不是从模型中调用它。
在您的monthTotal视图中,您可以使用CListView来迭代活动记录,如下所示:
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>
每次迭代都会调用名为“_view”的子视图。可以使用$ data(例如:$ data-&gt; id);
访问该记录的数据以下是不使用CActiveDataprovider查询的示例:
$model = Rapporti::model()->findAll(array(
'condition' => 'dataBetel=:month',
...
));
您可以尝试...或者您可以使用findAllBySql()而不是findAll()并以这种方式输入您的查询。然后,您将能够使用foreach()循环遍历数据集