В Yii фреймворке, для отображения данных в виде таблицы, часто используется виджет GridView. Он предоставляет удобный способ форматирования данных и представления результатов запросов к базе данных.
Когда вы хотите вернуть форматированные данные в GridView, вам нужно определить колонки (columns) и форматирование для каждой колонки, чтобы задать, какие данные и как они должны быть отображены.
1. Определение GridView
Сначала нужно создать GridView виджет и указать источник данных, например, массив или провайдер данных. В вашем случае, если вы хотите отображать результаты запросов к базе данных, вы можете использовать ActiveDataProvider.
use yiigridGridView; use yiidataActiveDataProvider; $dataProvider = new ActiveDataProvider([ 'query' => YourModelClass::find(), ]); echo GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ // описания колонок ], ]);
2. Описание колонок
Затем нужно описать колонки, указав форматирование для каждой. Можно использовать различные виды колонок, такие как DataColumn для стандартной форматированной колонки или ClosureColumn для кастомного форматирования.
Пример форматирования столбца с помощью функции formatCurrency
:
use yiigridDataColumn; [ 'attribute' => 'amount', 'format' => 'currency', 'value' => function($model) { return formatCurrency($model->amount); }, ],
Здесь attribute
определяет имя атрибута модели, который будет отображаться в данной колонке. format
задает формат отображения значения атрибута (в данном случае - 'currency'
, который использует конфигурацию приложения для форматирования валюты). value
- функция, которая возвращает отформатированное значение атрибута в колонке.
3. Форматирование CSS и HTML
Вы также можете форматировать отображение данных с помощью CSS и HTML. Вы можете использовать опции contentOptions
и headerOptions
для установки CSS-классов для ячеек и заголовков колонок.
Пример CSS-форматирования ячейки:
[ 'attribute' => 'status', 'value' => function($model) { return $model->status == 'active' ? 'Active' : 'Inactive'; }, 'contentOptions' => function($model, $key, $index, $column) { return $model->status == 'active' ? ['class' => 'text-success'] : ['class' => 'text-danger']; }, ],
В этом примере, contentOptions
задает класс text-success
для активного статуса и класс text-danger
для неактивного статуса. Это оформление может быть стилизовано через CSS.
В заключение, использование GridView в Yii дает вам возможность удобно форматировать и отображать данные в таблице с помощью различных опций и функций. Вы можете определить колонки, задать форматирование и CSS для ячеек для настройки отображения ваших данных в GridView.