Слайд 2Старый добрый getList
Метод ЕДИН для всех и подчиняется одним законам.
Принимает
следующие параметры в виде массива:
select - имена полей, которые необходимо получить в результате
filter - описание фильтра для WHERE и HAVING
group - явное указание полей, по которым нужно группировать результат
order - параметры сортировки
limit - количество записей
offset - смещение для limit
runtime - динамически определенные поля
Слайд 3getList ВСЕГДА возвращает объекта класса DB\Result. Из него можно получить данные с
помощью:
fetch() - используем в цикле для получения данных одного элемента
fetchAll() - получаем ВСЕ данные
Слайд 4select
Параметр `select` определяется в виде массива с именами полей сущности:
Слайд 5filter
Если мы не указываем =, то по умолчанию будет выполнен LIKE.
Слайд 6group и order
В параметре `group` перечисляются поля для группировки:
Параметр `order` позволяет указать
порядок сортировки:
Слайд 7offset и limit
Параметры `offset` и `limit` помогут ограничить количество выбираемых записей или
реализовать постраничную выборку:
Слайд 8runtime
Позволяет использовать вычисляемые поля. В секции `runtime` можно регистрировать не только Expression
поля, но и поля любых других типов. Механизм `runtime` работает таким образом, что к сущности добавляется новое поле, будто оно было описано в ней изначально в методе `getMap`. Но такое поле находится в зоне видимости только в рамках одного запроса - в следующем вызове getList такое поле уже будет недоступно, потребуется заново его зарегистрировать.
Слайд 10Кеширование выборки
Для кеширования выборки указываем ключ cache в getList. По умолчанию выборки
с JOIN не кешируются. Сброс кеша происходит в любом методе add/update/delete.