Если я правильно понимаю ваш вопрос, вы могли бы сделать что-то подобное.
Сначала убедитесь, что в вашей модели ProductType
определено отношение продуктов. (я полагаю, что это зависит от вашей таблицы продуктов.)
Затем вы можете выполнить запрос на основе подсчета отношений, используя метод модели Eloquent has
.
Пример:
ProductType::with('products')->has('products', '>', 1)->get();
with('products')
является необязательным.Он просто захватывает продукты одновременно, чтобы избежать дополнительных запросов.Метод whereHas
также работает, но он действительно необходим, только если вам нужно отфильтровать отношения по более сложным параметрам.
Вы также можете использовать метод has
/ whereHas
внутри модели Product
используя обратное отношение (то есть ownTo) , чтобы получить то же самое, но инвертированное.Это действительно зависит от того, как вы хотите, чтобы данные были представлены вам.
Пример:
Product::whereIn(
'product_type_id',
ProductType::has('products', '>', 1)->pluck('id')
)->get();
Подводя итог всему, первый способ даст вам:
ProductType => Product
В то время как второй пример даст вам:
Product => ProductType
Подробнее см. Соответствующую документацию Laravel .
Надеюсь, чтопомогает!