Как пропустить некоторые строки в GridView (Yii2)?
Задача такая: нужно через GridView вывести данные в табличном формате. Сложность в том, что некоторые строки таблицы нужно пропустить, чтобы их не было вообще. Это нужно сделать динамически при выводе, набор данных (dataProvider) менять нельзя. Как это можно сделать без лишних извращений?
В стандартной реализации GridView нет возможности исключать строки, поэтому либо ищите расширение которое это позволяет делать, либо реализуйте свой виджет-наследник от GridView который будет принимать характеристики по которым нужно исключать данные и не отображать их по этим характеристикам. Можно конечно на уровне java-script удалять строки либо скрывать их на уровне css (с помощью свойства rowOptions) но это реальные костыли.
А почему dataProvider нельзя менять? Что мешает сделать еще 1 dataProvider, который поменять? Тупо клон и меняем что хотим. Можно сделать свой дата провайдер, наследованный от ActiveDataProvider, который будет иметь дополнительный метод, который будет возвращать обрезанный вариант.