Разрабатываю модуль для Magento 2: нужно выдать результат, основанный на данных с разных таблиц БД. Сделал модели, а как их связать (не join) - не пойму.
UPD:
По сути, бизнес-логику можно писать прямо в /Controller, т.к. в данном случае они не для отображения. Хотя еще можно подумать насчет /Helper.
Можете привести пример итогового SQL-запроса? А лучше DDL этих двух таблиц. Если структура оригинальных таблиц и итоговый SQL слишком сложные, то какой-нибудь простой эквивалент.
Юра Герасименко: долго думал как вам ответить, как такового sql-запроса у меня еще нет, да и дело не в нем, там все просто. Меня больше интересует где можно расположить эту самую бизнес-логику. Есть сущность группы, есть элементы в этих группах. В идеале получить в группе метод getQty() который внутри сделает запрос к элементам и обработает результат.
Михаил: > где можно расположить эту самую бизнес-логику
Если планируете переиспользовать, то, думаю, лучше в модели или в хэлпере . Опять же, все зависит от исходных данных. Мне пока сложно вам что-то сообщить по теме вопроса без конкретных примеров. ZendFramework (на котором базируется Magento) позволяет связать данные из разных таблиц на разных уровнях: на уровне чистого SQL запроса, на уровне встроенного SQL-билдера или на уровне встроенных моделей доступа к данным, от которых может быть унаследована ваша модель.
Юра Герасименко: я хотел все сделать в модели, но маджента почему-то не хотела подвязывать зависимость другой модели (хотя зависимость в контроллере прекрасно обрабатывала). После я решил использовать хелперы, которые будут использовать одну или несколько моделей.