WebDev2030
@WebDev2030
Битриксоид до мозга и костей

Как сгенерировать фильтр для модели?

В ларавел новичек. Стоит задача написать фильтра в CRM системе. Сущностей всяких много, базого хочется реализовать динамические фильтры для разных сущностей. Грубо на взоде Класс модели, а на выходе описание для фронта, возможно валидаторы и возможность сразу простроить запрос к базе. Задача №1 построить данные для фронта. Список полей (или свойств, атрибутов) с типами данных (для начала строка, число, далее уже связи буду думать). Подскажите в какую сторону копать, как получить список свойств?
  • Вопрос задан
  • 64 просмотра
Пригласить эксперта
Ответы на вопрос 1
yesbro
@yesbro
Думаю, помогаю думать
Посмотри в строну этого пакета https://github.com/asseco-voice/laravel-json-query... Позволяет на основу пришедших с фронта json-данных построить запрос.

Список свойств получить просто.

array_keys(Article::first()->getAttributes());

Если для каждого поля заполнить данные в свойстве $casts то через метод getCasts() можно получать тип данных.

Вот решение как получить список всех объявленных связей в модели https://gist.github.com/shanginn/aadddec758efb595b... Не тестировал. Но вообще такое можно и самому сделать через атрибуты, например, или рефлексию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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