Задать вопрос
Horik_off
@Horik_off
Developer

Как реализовать выбор модели для поиска с учетом выбранного значения?

В общем, есть форма вот такого вида.

9c504458ed2d4d6eb97cfaeb0504aa7f.png

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

Как организовать выбор нужной модели для поиска? Известно, что первым аргументом в $form->field($model, 'attribute') неоходимо передать имя модели в которой будет реализован метод search(); Как организовать переключение между моделями в моем случае? Или правильнее создать отдельную модель, к примеру, searchModel и туда вещать какой-то обработчик? Логичнее, на мой взгляд, было бы создать модель Search и там реализовать метод для поиса, чтобы не писать один и тот же метод в двух разных моделях, но, тогда возникает другой вопрос - при генерации модели необходимо указать таблицу (одну, по которой нужно реализовывать метод поиска), но в моем случае их две и они (обе модели) уже существуют. Подскажите пожалуйста, какой-нибудь best practice? Спасибо.
  • Вопрос задан
  • 155 просмотров
Подписаться 2 Оценить 11 комментариев
Решения вопроса 1
Я бы создал как вы и предлагаете отдельный класс Search, унаследованный от класса Model и реализовал бы логику поиска в нем.
Как вариант вы можете вынести логику в Trait и подключить ее в классах AuthorSearch и ArticleSearch, которые наследуются от соответствующих моделей AR
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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