yii关系数据网格小部件

时间:2011-05-19 10:16:38

标签: widget yii relational

使用Yii的CGridView小部件我想在数据网格中显示来自两个或更多数据库表的数据,如

使用小部件

在dataGrid中显示订单和客户信息

任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以使用模型的关系属性和' /'过滤器'来显示相关数据。 CGridView列的属性。例如,假设每个订单都有一个'客户'在模型的关系只读属性中定义的关系。您可以轻松地显示两个表中的信息,假设$ model是订单模型的搜索实例。

$this->widget('zii.widgets.grid.CGridView',array(
    'id' => 'order-grid',
    'itemsCssClass' => 'dataGrid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
        'order_number',
        array(
            'name' => 'customer_id',
            'value' => '$data->customer->first_name . " " . $data->customer->last_name',
            'filter' => Html::listData(Customer::model()->findAll(),'id','name'),
        ),
    ...
));

这假定您要使用下拉列表作为过滤器。您可以使用其他过滤器,或者您可以自定义过滤到dataProvider方法。