PttRulez
@PttRulez

Yii2. Кастомная таблица. Использовать ли GridView?

Здравствуйте. Подскажите, в Yii2 всегда таблицу имеет смысл делать через GridView? Или же он нужен только когда Таблица повторяет таблицу из БД или является склейкой нескольких таблиц из БД?
Хотелось бы пользоваться теми фильтрами и возможностями, которые дает gridview и searchmodel для фильтрации данных. Также мне было бы полезно, т.к. я изучаю фреймворк, на примере разобраться как работает виджет. Но я не уверен, что в моем случае его надо использовать.
В gridview обычно строка - это один экземпляр модели, а столбец - один из ее атрибутов.

У меня же задача примерно такая:
Каждая клетка это просто echo $model->name . $model->attribute4
Столбцы - это значения одно из атрибутов модели (в первом столбце только те модели, у кого атрибут2 равен 0, во втором те у кого он - равен 1 и т.д.)
Также надо внутри сгруппировать по атрибуту# 3. Т.е. сделать как бы объединенную ячейку. Вот примерный прототип таблицы:
o9b75W70GK.jpg

Нужно реализовать фильтрацию по различным атрибутам. Атрибуты для представления и для фильтрации могут быть как из таблицы самой модели, так и из связанных таблиц

Подскажите, пожалуйста, в какую сторону изучать материал и какой именно, чтобы это реализовать. Самый кастомный вариант виджета, который я видел, это у картика demos.krajee.com/group-grid , но примеры, которые я вижу, наводят на мысль, что это не то что мне нужно

Саму таблицу с выводом данных я даже сделал кое-как. Некрасивая, но, что нужно, показывает. Просто собрал массив тройной вложенности и через вложенные foreach сделал div-верстку. Фильтрацию пока не знаю, как реализовать, но я могу либо изучать интернет на тему как это сделать просто на php (а скорее ys jquery) либо на тему именно gridview от yii2. В гридвью классно что уже таблица красиво стилизована и работает грамотно фильтрация/сортировка.
  • Вопрос задан
  • 369 просмотров
Пригласить эксперта
Ответы на вопрос 1
gscraft
@gscraft
Программист, философ
Сложно понять задачу в общем и целом, однако. Имеет ли смысл работать с GridView? Это довольно гибкий механизм, реализовать можно если не всё, то многое, причем, не прибегая к внешним библиотекам и в экосистеме Yii2. Так, например, решением "в лоб", можно определить свои модели с данными и для фильтрации, наследуя от yii\base\Model , передав виджету ArrayDataProvider и кастомные поля в columns с "отлавливанием" группирующих моделей. Посмотрите, что можно настроить https://www.yiiframework.com/doc/api/2.0/yii-grid-... и документацию yii\grid\DataColumn, вы можете определять практически все, вплоть до HTML-атрибутов таблицы. Конечно, есть и более гибкие библиотеки для работы с таблицами, особенно на JavaScript, но в Вашем случае, похоже, весомая доля работы ложится на контроллер, где попутно можно сформировать и колонки для таблицы, пользуясь инструментарием Yii2.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы