виджет реляционной таблицы данных yii - PullRequest
0 голосов
/ 19 мая 2011

Используя виджет Yii CGridView, я хочу отображать данные из двух или более таблиц БД в сетке данных, например

, отображать информацию о заказах и клиентах в dataGrid с помощью виджета

Любая идея?

Заранее спасибо.

1 Ответ

0 голосов
/ 19 мая 2011

Вы можете отобразить связанные данные, используя атрибуты отношений модели и атрибуты 'value' / 'filter' столбцов 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.

...