Yii2 GridView. Виджет вывода данных. Часть 1

Yii2 GridView. Виджет вывода данных

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы с вами познакомимся с одним из виджетов для работы с данными – это виджет Yii2 GridView.

Фреймворк Yii2 предлагает сразу несколько виджетов для отображения данных – это виджет DetailView, ListView и мощный виджет для работы с данными GridView, который мы и начнем рассматривать в данной статье.

Виджет GridView (или таблица данных) представляет из себя таблицу, которую очень удобно использовать в админке сайта. В нее построчно выводятся данные конкретной таблицы БД и управлять этими данными – одно удовольствие. В таблицу мы можем вывести только те данные, которые нам нужны, мы можем определять формат этих данных, сортировать их по любому полю, производить быстрые операции (переход к детальному просмотру записи, редактирование выбранной записи или ее удаление).

Прелесть работы с этим провайдером данных заключается еще и в том, что изначально нам не придется даже писать код, мы можем воспользоваться генератором кода Gii, который по умолчанию сгенерирует в индексных видах представление данных табличным списком, т.е. с использованием виджета GridView. Вот какой код генератор выдал для списка постов в админке:

А вот так выглядит результат работы данного кода на странице списка постов в админке:

Yii2 GridView. Виджет вывода данных

Каждая строка таблицы – это одна статья, т.е. одна запись из соответствующей таблицы в БД. По умолчанию фреймворк может вывести в таблицу не совсем те данные, которые нам нужны. Например, в моем случае краткий и полный текст записи явно лишние и выводить их не нужно. А вот поля created и status можно было бы вывести (в коде они есть, но закомментированы). Поправить это легко. Поля таблицы перечислены в свойстве columns виджета, просто уберем или закомментируем лишние поля и добавим или раскомментируем нужные.

В итоге мы получим следующую картину:

Yii2 GridView. Виджет вывода данных

Согласитесь, таблица стала выглядеть куда приятнее. Она стала компактной, в ней появились недостающие данные и управлять такой таблицей теперь гораздо удобнее. Идем дальше и попробуем воспользоваться возможностью настройки содержимого колонок. Например, в колонке Title у нас имеется наименование поста. Представим, что там могут быть теги HTML, например, обрамим наименование первой записи в теги b.

Yii2 GridView. Виджет вывода данных

Как видим, теги не работают, они преобразуются в HTML-сущности. Так происходит, потому что по умолчанию виджет использует для форматирования данных в этой колонке компонент Formatter и тип формата text. Если мы хотим, чтобы теги работали, нам достаточно изменить форматирование колонки. Для этого мы немного перепишем вывод указанной колонки, вот так:

Здесь мы использовали formatter html для нужного нам атрибута title. Также можно вместо html использовать значение raw. В результате теги сработают:

Yii2 GridView. Виджет вывода данных

Такая возможность вряд ли нужна нам для заголовка, но безусловно потребуется, например, для показа миниатюры записи. Кроме форматтеров text (по умолчанию) и html (или raw) мы можем использовать и набор других методов форматирования, полный их список можно найти в документации.

Возьмем еще один пример, давайте изменим формат даты поста. Сейчас у нас выводится дата в формате YYYY-MM-DD. Пара примеров форматирования даты. Заменим простой вывод атрибута created таким:

Результат:

Yii2 GridView. Виджет вывода данных

Также можно встретить и такой вариант форматирования даты:

Результат будет аналогичен предыдущему. На этом сегодня все. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Метки:

Похожие статьи:

Комментарии Вконтакте: