【发布时间】:2021-06-01 14:18:18
【问题描述】:
我有一个 Shop 模型,它可以具有三个关系:Specials、Discounts 和 ThrowOuts。我想选择所有在这三个关系中的任何一个中有数据的Shops,但屏蔽那些根本没有的。
我还想根据Shop 本身的属性来限制搜索结果:
Shop::where('state', $state)
->whereHas('Specials')
->whereHas('Discounts ')
->whereHas('ThrowOuts')
此查询要求所有关系都有数据 - 不能为空
Shop::where('state', $state)
->orWhereHas('Specials')
->orWhereHas('Discounts ')
->orWhereHas('ThrowOuts')
使用orWhereHas 会返回所有在这些关系中有任何数据的商店无论第一个“位置”是什么,因此我也可以从全国各地获得商店。
【问题讨论】:
标签: laravel laravel-query-builder wherehas