根据传递过来的订单编号,使用CActiveDataProvider、CDbCriteria和CGridView实现订单详情的显示。
效果如下:
点击查看ID为80的订单后,得到如下如果
控制器:tblOrdersController.php的视图首先设置一下,才能传ID过去:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'tbl-orders-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'orders_id',
//'orders_sn',
array( 'class'=>'CLinkColumn',
'header'=>'订单编号',//显示表的列名称
'labelExpression'=>'$data->orders_sn',//显示字段名称
'urlExpression'=>'Yii::app()->createUrl("admin/tblOrders/listDetial",array("orders_id"=>$data->orders_id))',//显示URL
'linkHtmlOptions'=>array('title'=>'See all entries with this last name')
),
'members_id',
'orders_status',
'shipping_status',
'consignee',
/*
'country',
'province',
'city',
'address',
'tel',
'mobile',
'email',
'shipping_id',
'shipping_name',
'pay_id',
'pay_name',
'goods_amount',
'add_time',
'confirm_time',
'pay_time',
'shipping_time',
'pay_status',
*/
array(
'class'=>'CButtonColumn',
),
),
)); ?>
控制器:tblOrdersControlloer.php
/*
* 查看订单详情
*
*/
public function actionlistdetial(){
if(isset($_GET['orders_id'])){
//获取ID号
$orders_id=$_GET['orders_id'];
//创建criteria对象
$orders_criteria=new CDbCriteria();
//设置查询条件
$orders_criteria->condition="orders_id='".$orders_id."'";
//实例化数据提供器对象,第一个参数是查询的AR模型类名
$dataProvider=new CActiveDataProvider('TblOrders');
//设置查询器的查询条件
$dataProvider->setCriteria($orders_criteria);
//设置分页的页大小
$dataProvider->setPagination(array('pagesize'=>2));
//创建第二个数据提供者对象,方法同上,这里可以在视图显示两个girdview
$detial_criteria=new CDbCriteria();
$detial_criteria->condition="orders_id='".$orders_id."'";
$detial_dataProvider=new CActiveDataProvider('TblOrderDetial');
$detial_dataProvider->setCriteria($detial_criteria);
$detial_dataProvider->setPagination(array('pagesize'=>10));
//调用视图,把数据传给视图进行显示
$this->render('listdetial',array(
'dataProvider'=>$dataProvider,
'detial_dataProvider'=>$detial_dataProvider
));
}
}
视图:listdetial.php
<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
$this->widget('zii.widgets.grid.CGridView',array(
'dataProvider'=>$dataProvider,
'columns'=>array(
'orders_id',
'orders_sn',
'members_id',
'orders_status',
'shipping_status',
)
));
?>
<?php
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$detial_dataProvider,
'columns'=>array(
//'detial_id',
//'orders_id',
'goods_id',
'goods_name',
'goods_sn',
'goods_number',
//'market_price',
'shop_price',
//'promote_price',
'final_price',
'goods_color',
'goods_size',
//array(
// 'class'=>'CButtonColumn',
//),
),
));
?>