yii2 GridView ::widget Пример переопределения выводимого текста. "сортировка" по виртуальным атрибутам, заголовок. Перенос строк
Primary tabs
Пример переопределения отображаемого текста и работы с виртуальными атрибутами модели:
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], '_id', [ 'attribute'=> 'city_id', 'value' => function ($model, $key, $index, $column) { /*выводим виртуальный атрибут -- такой подход позволяет "сортировать", хотя эта сортировка (при клике по заголовку в таблице GridView) будет по факту происходить и не по отображаемому значению */ return $model->cityName; } ], [ 'attribute'=> 'federal_subject_id', 'value' => function ($model, $key, $index, $column) { //выводим виртуальный атрибут -- такой подход позволяет сортировать return $model->federalSubjectName; } ], 'lastAddDateTime', [ 'label' => 'Статус активности', // переопредляем заголовок колонки 'attribute'=> 'active', 'value' => function ($model, $key, $index, $column) { $result = 'Статус не определён'; /* подмена отображения логического значения (boolean)*/ if ($model->active) { $result = 'Активно'; } else { $result = 'Завершено'; } return $result; } ], ['class' => 'yii\grid\ActionColumn'], ], ]); ?>
Перенос строк в заголовке таблицы
Можно вообще явно использовать другой header:
[ 'header' => 'Крит.чсл.<br> сообщений', 'attribute'=> 'LevelCount', ],
-- но этот подход вырубит сортировку, чтобы сортировка сохранилась используйте переопределение label, с выключением обхода html сущностей (код для опредления очередной колонки):
[ 'attribute' => 'firstname', 'label' => ' Ваше <br /> Имя', 'encodeLabel' => false, ],
Источники
- Log in to post comments
- 4974 reads