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

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

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

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

У нас в таблице имеется поле Status, которое может принимать значения 0 (выключено) или 1 (включено). Нам эти значения вполне понятны, но если мы сделаем сайт далекому от программирования пользователю, то для него было бы куда понятнее вместо циферок, скажем, слова Показывается и Не показывается. Давайте попробуем заменить цифры на строки. Закомментируем простой вывод status и вместо него добавим такой код:

// 'status',
[
 'attribute'=>'status',
 'value' => function($data){
 return $data->status ? 'Показывается' : 'Не показывается';
 }
],

Здесь в качестве значения атрибута указывается анонимная функция, которая параметром принимает объект данных текущей строки, т.е. текущую запись. В этом объекте нас интересует свойство status, значением которого в нашем случае может быть 0 или 1. Соответственно, мы возвращаем строку Показывается, если $data->status вернет true и Не показывается – в противном случае. В итоге мы получим такую картину:

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

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Для красоты картины не помешает выделить зеленым цветом активные записи и красным – не активные. Для этого добавим немного html и нужное форматирование:

[
 'attribute'=>'status',
 'format' => 'raw',
 'value' => function($data){
 return $data->status ? '<span class="text-success">Показывается</span>' : '<span class="text-danger">Не показывается</span>';
 }
],

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

Также вам может потребовать такой интересный вариант, как показ включенной или выключенной записи в виде чекбокса. Для этого можно использовать класс CheckboxColumn и примерно такую запись:

[
 'class' => 'yii\grid\CheckboxColumn',
 'header' => 'Status',
 'checkboxOptions' => function ($model, $key, $index, $column) {
 return $model->status ? ['checked' => "checked"] : [];
 }
],

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

Теперь все активные записи показаны отмеченным чекбоксом. При желании мы можем навесить JS, который будет отслеживать событие изменения чекбоксов в таблице и отправлять AJAX запрос, который будет включать или выключать запись.

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

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2: теория и первая практика

Овладейте азами фреймворка Yii2 за 5 дней!

Получить

Метки:

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

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

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree