有两个表,百分比和商店。有一种关系,我可以从商店获得百分比数据,例如$ stores-> percentageTable。
我希望从百分比表中获取数据。我一直在做这个循环,但我不想再使用循环了。希望使用CActiveDataProvider
代替解决方案。
观点:我想要像顶部一样的东西。第二部分是我通常会做的事情。
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'commission',
//looking for a solution something like this
'dataProvider'=> new CActiveDataProvider('Store',array('data'=>$commission)),
'filter'=>$model,
'columns'=>array(
'percent.commission_percent',
'percent.date_from',
'percent.date_to',
))); ?>
<?php //I don't want this anymore...
foreach($commission as $percent){
echo $percent->com_percent;
echo $percent->date_from;
echo $percent->date_to;
}
?>
控制器:我是根据商店而不是百分比表加载的。
public function actionCommission($id)
{
$model=$this->loadModel($id);
$commission = $model->sellerCommissionOverrides;
$this->render('commission',array(
'model'=>$model,
'commission'=>$commission,
));
}
答案 0 :(得分:0)
您需要在模型Store中定义关系,即
'percent'=>array(self::HAS_ONE, 'PercentageModel', 'store_id'),
然后你可以像你想要的那样使用它
'dataProvider'=> new CActiveDataProvider('Store'),
'filter'=>$model,
'columns'=>array(
'percent.com_percent',
'percent.date_from',
'percent.date_to',
))); ?>