KOTOFF.NET
  • Главная
  • Пользователи
  • Контакты
  • Статистика
  • Правила
  • О нас
  • Вход / Регистрация

Yii2 (ч3) — Работа с GridView

Статьи / PHP

В третьей части курса по изучению фреймворка Yii2 разберём работу с GridView, а также воспользуемся встроенным модулем gii для генерации CRUD.



С прошлых двух уроков у нас уже есть некая база, которую мы будем использовать сегодня. Внизу будут ссылки на предыдущие две статьи, в них есть подробный разбор работы со связями в моделях (а с ними как раз-таки и предстоит вновь иметь дело). 

Сейчас в учебном проекте имеется три модели (пользователи, работники и организации). В этом уроке сделаем общий список юзеров, в котором в том числе будет использовать связные данные.


Шаг 1: CRUD Generator

Чтобы не создавать кучу файлов ручками - можно воспользоваться встроенным модулем gii. Для этого переходим по адресу site/gii и выбираем CRUD Generator и жмём на кнопку start:

Далее необходимо заполнить форму и нажать на кнопку Preview (для предпросмотра) и на кнопку Generate (для автоматической генерации файлов):


Если при попытке перейти на site/member появляется подобная ошибка - значит индексном файле вида нужно дописать пространство имён в urlCreator:




Шаг 2: GridView 

Ошибку устранили, теперь можно посмотреть на промежуточный результат:

И сразу же давайте уберём первые два столбца с айдишниками, они явно тут не нужны. Для этого стираем вот эти две строчки в файле views/member/index.php:

Также хотелось бы убрать вывод количества найденных записей в БД, поэтому я также добавлю в общий массив ключ 'layout' со значением '{items}{pager}'. Отсутствие сего элемента эквивалентно значению '{summary}{items}{pager}':


Теперь бы русифицировать заголовки колонок таблицы. Для этого переходим в модель Member и добавляем метод attributeLabels() (если его нет). Я пока что впишу сюда только три элемента. Ключом ассоциативного массива должно быть название поля из БД, а значением - расшифровка.

public function attributeLabels() : array
{
    return [
        'oid' => 'Место работы',
        'name' => 'Имя',
        'joined' => 'Дата регистрации',
    ];
}

И теперь можно заметить, что в шапке таблицы выводятся те заголовки, которые мы только что задали.


А сейчас я вновь перемещусь в индексный вид для того, чтобы немного поиграться с выводом данных. Сейчас в массив передан список названий полей из БД в виде строк. То есть все данные выводятся так, как они записаны в базе данных. А что, если эти самые данные нам нужно отформатировать или вывести как-то иначе? 

Попробуем напечатать имена пользователей в таблице жирным шрифтом, используя следующую конструкцию:

Теперь смотрим и видим, что html-теги вывелись как обычный текст:

Чтобы это исправить - нужно либо изменить ключ value на content, либо добавить в массив элемент 'fotmat' => 'html':


Для добавления атрибутов ячейкам таблицы можно добавить элемент 'contentOptions', в качестве значения используется ассоциативный массив или анонимная функция:


Далее я хочу, чтобы дата регистрации пользователей отображалась в адекватной форме, а не таймштампом. Для этого использую анонимную функцию, в которую передаю модель $member. Возвращаться будет результат работы date():


Также добавим в таблицу столбцы, в которых будет содержаться информация о трудоустройстве и должностях пользователей:

И таблица на текущий момент выглядит таким образом:


Можно ещё заменить наполнение правого крайнего столбца с кнопками, если дефолтные вас чем-то не устраивают. К примеру, сделать это можно так:


Чтобы задать свои атрибуты для всей таблицы - используйте массив tableOptions. Допустим, зададим для таблицы класс kotoff-table:

Как видите - класс успешно добавился. Правда таблица слегка сломалась из-за отсутствия стилей, ну да ладно.


И на этой ноте, думаю, пора заканчивать эту статью. В следующий раз будем разбираться с фильтрами, сортировкой и поиском.

  • 5id15
  • 06.09.2022
  • 2 586
  • 0
Yii2 (ч1) — Установка и настройка ЧПУ
Yii2 (ч1) — Установка и настройка ЧПУ
16-08-2022, 15:32, PHP
Yii2 (ч2) — Основы работы с БД и настройка связей в моделях
Yii2 (ч2) — Основы работы с БД и настройка связей в моделях
18-08-2022, 17:10, PHP
Создаём Discord-бота на PHP
Создаём Discord-бота на PHP
13-08-2022, 18:11, PHP
Создание динамической картинки со своим текстом и изображением с помощью PHP и использованием Imagick
Создание динамической картинки со своим текстом и изображением с помощью PHP и использованием Imagick
14-01-2021, 15:17, Статьи / PHP
Обновление Conference Kot v4.0 Customization
Обновление Conference Kot v4.0 Customization
25-02-2019, 22:32, Обновления
Movie

Нет комментариев. Не желаешь оставить первый комментарий?

Перед публикацией, советую ознакомится с правилами!

{login}

Твой комментарий..

Заказывай!
Разработка ботов на заказ, любой сложности, обращаться:
 VK KOTOFF.net - Сообщество, в личные сообщения или по контактам указанным там 
 mail: [email protected]

Рекламный блок
  • Новости
  • Платная категория
  • Блог
  • Игры
  • Обновления
  • Программы
  • Статьи
    • PHP
    • Python
    • JS
  • Дизайн
    • PSD исходники
  • DLE
    • Шаблоны
    • Модули
    • Хаки
  • Магазин
    • Скрипты
Комментарии
Система комментариев на PHP
Полезная статья
Создание простого Telegram-бота с клавиатурой и inline-кнопками [Часть 2]
Класс, хорошая тема
Динамическая обложка для группы ВК, последний подписчик, топ комментатор и прочее
Как отключить вывод результата cron в папку modules/cron в Open Server? Крон запускает несколько
Динамическая обложка для группы ВК, последний подписчик, топ комментатор и прочее
Планируете ли вернуться к динамической обложке?
Скрипт для скачивания видео с YouTube на PHP
Уже не работает.
Все комментарии..
Полный список последних комментариев
Лучшие новости
Всего публикаций: 115
Добавлено за сутки: +0
Записей в блоге: 1
Добавлено за сутки: +0
Комментариев: 936
Добавлено за сутки: +0
Пользователей: 4124
Добавлено за сутки: +0
Полная статистика..
Подробная статистика сайта
Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter

Полезные ссылки
  • О проекте
  • Наши контакты
  • Администрация
  • Рекламные материалы
  • Идеи и предложения
  • Ответы на вопросы
Информация
  • Условия сделки
  • Способы оплаты
  • Поддержка / F.A.Q
  • Онлайн документация
  • Статистика сайта
  • Список пользователей
Услуги/Работа
  • Разработка ботов ВК
  • Обновление проекта
  • Консультация/поддержка
KOTOFF.net

Copyright © Footer 2019-2023. All right reserved.
KOTOFF.net - Уроки по PHP, SQL, IT новости
Быстрый вход

Используйте социальные сети для быстрой регистрации и авторизации.

Google
ВКонтакте
Яндекс
Mail.ru
Создать аккаунт / Регистрация
Авторизация

Я забыл свой пароль