我有详细视图和网格视图的视图页面,网格视图应该由详细视图数据自动填充。重要的是,详细视图模型和网格视图模型不一样,它们应该取自不同的模型,我没有分配任何关系,所以都需要曼努尔。并且视图应该导出为 pdf 和 excel 视图。
我的 view.php 是
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'invoice_no',
'invoice_date',
'dc_no',
'dc_date',
'client',
'total_amount',
'status',
),
)); ?>
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'invoice-transaction-grid',
'dataProvider'=>$dataProvider->search(),
'filter'=>$model,
'columns'=>array(
//'invoice_id',
//'invoice_no',
'dc_no',
'client',
/*array(
'name'=>'client',
'value'=>'Client::model()->findByPk($data->client)->Client_name',
'filter'=>CHtml::listData(Client::model()->findall(),'Client_id','Client_name'),
),*/
'project',
/*array(
'name' => 'project',
'value' => 'Project::model()->findByPk($data->project)->proj_name',
'filter'=>CHtml::listData(Project::model()->findall(),'proj_id','proj_name'),
),*/
'complexity',
/*array(
'name' => 'complexity',
'value' => 'Complexity::model()->findByPk($data->complexity)->Complexity_Name',
'filter'=>CHtml::listData(Complexity::model()->findall(),'id','Complexity_Name'),
),*/
'totalpage',
'rate_per_page',
'total_amount',
/*array(
'class'=>'CButtonColumn',
),*/
),
)); ?>
我需要显示由详细视图数据('invoice_no')自动过滤的网格,我的控制器用于上述视图
public function actionView($id)
{
//$dataProvider=new CActiveDataProvider('InvoiceTransaction');
$dataProvider=new InvoiceTransaction('search');//this is a different model
$dataProvider->unsetAttributes(); // clear any default values
if(isset($_GET['InvoiceTransaction']))
$dataProvider->attributes=$_GET['InvoiceTransaction'];
$this->render('view',array(
'model'=>$this->loadModel($id),'dataProvider'=>$dataProvider,
));
}
如何解决我的问题..任何人都可以提出建议
回答嗨我得到了过滤问题的答案我刚刚在我的控制器中添加了默认过滤器值
public function actionView($id)
{
//$dataProvider=new CActiveDataProvider('InvoiceTransaction');
$model=$this->loadModel($id);
$dataProvider=new InvoiceTransaction('search');
$dataProvider->unsetAttributes(); // clear any default values
if(isset($_GET['InvoiceTransaction']))
$dataProvider->attributes=$_GET['InvoiceTransaction'];
$dataProvider->invoice_no=$model->invoice_no;/// this line only gave me answer
//$model->unsetAttributes();
if(isset($_GET['InvoiceMaster']))
$dataProvider->attributes=$_GET['InvoiceMaster'];
$this->render('view',array(
'model'=>$model,'dataProvider'=>$dataProvider,
));
}
但现在正在努力将同一文件上的 detailview 和 gridview 导出为 pdf 或 excel。