capscom
Новичок
Всем привет!
При использовании паттерна у меня возникают трудности:
1. В случае связанных данных. Например, у нас есть сайт с объявлениями о продаже авто. На главной странице нужно вывести их список с пагинацией и фильтрами по свойствам:
С точки зрения принципа "единой ответственности", в данном случае, нужно под каждую сущность/таблицу создать отдельные репозитори: BrandRepository, CountryRepository и т.д.
Но как тогда собрать такой запрос используя группу репозиториев, не нарушая принципа единой ответственности?
2. При создании объявления нужно произвести запись в 2 таблицы: Posts и Cars. Как в сервисе использовать транзакции между репозитариями. Другими словами, есть ли на php UnitOfWork ?
При использовании паттерна у меня возникают трудности:
1. В случае связанных данных. Например, у нас есть сайт с объявлениями о продаже авто. На главной странице нужно вывести их список с пагинацией и фильтрами по свойствам:
Код:
SELECT (списокполей)
FROM Posts
LEFT JOIN Cars on Cars.id =Posts.carId
LEFT JOIN Cities on Cities.id =Posts.cityId
LEFT JOIN Regions on Regions.id =Cities.regionId
LEFT JOIN Countries on Countries.id =Regions.countryId
LEFT JOIN Models on Models.id =Cars.modelId
LEFT JOIN Brands on Brands.id =Models.brandId
WHERE Cars.condition ='new' AND Regions.id =1 AND Models.id =2
LIMIT 10,10
Но как тогда собрать такой запрос используя группу репозиториев, не нарушая принципа единой ответственности?
2. При создании объявления нужно произвести запись в 2 таблицы: Posts и Cars. Как в сервисе использовать транзакции между репозитариями. Другими словами, есть ли на php UnitOfWork ?