詳細ビューとグリッドビューの両方を含むビューページがあります。グリッドビューは詳細ビューデータで自動的に塗りつぶされます.1つの重要なことは、詳細ビューモデルとグリッドビューモデルが異なるモデルから取得する必要があることです.マヌル。また、ビューは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,
));
}
私の問題を解決する方法..誰でも提案することができます
ANSWERこんにちは、フィルタリングの質問に対する回答を得ました。コントローラにデフォルトのフィルタ値を追加しました
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,
));
}
しかし、現在、同じファイルの詳細ビューとグリッドビューの両方を pdf または Excel にエクスポートするのに苦労しています。