Всем хорошего дня) Подскажите, есть ли какое-то красивое решение, чтобы сделать несколько разных поисков по одной модели? Я сгенерировал в gii класс для поиска ApplicationsSearch, на его в контроллере я создаю DataProvider, но мне нужно создавать провайдер данных с разным условием выборки. Первый провайдер данных для открытых заявок (первая таблица грида) - статус = open, второй для закрытых - status = close и еще несколько провайдеров. решить задачу я пока смог двумя способами. Первый мне показался уместным, пока я не столкнулся с необходимостью создать третье условие выборки - я просто внутри самой модели поиска создаю несколько провайдеров данных, перебираю их в цикле и возвращаю массивом. Но когда появилась необходимость добавить третье условие выборки для третьего провайдера, это уже стало походить на нагромождение кода. Второй вариант решения проблемы - просто создать несколько отдельных файлов типа NewApplicationsSerch, CloseApplicationsSerch и так далее. Но возникает избыточность кода, хотя они все и наследуются от базовой модели Applications и их поддержка не трудна, но все же по сути это куча файлов с одинаковым кодом с той лишь разницей, что у них query (выборка данных) разная. И сейчас пока писал этот текст еще пришел в голову третий вариант - создать базовый класс поиска ApplicationsSearch и наследоваться от него, а в новых классах NewApplicationsSerch, CloseApplicationsSerch и так далее переопределять только свойство query. Вроде уже выглядит логичнее, но в то же время хочу услышать ваши советы, может кто подскажет, что-то дельное?