我的数据模型如下:一个请求有零个或多个商品。请求具有以下状态:已接受,已取消,待处理。优惠有一个host_id。
我想要查询的是:所有处于待处理状态的请求,或处于接受/取消状态且主机ID等于给定状态的所有请求。
关注此https://laravel.com/docs/5.5/queries#parameter-grouping,这是我的代码:
$offers = Request::whereIn('request_status', array($clientOfferPending))
->orWhere(function ($query) use ($hostId, $clientOfferAccepted, $clientOfferCancelled) {
$query->whereIn('request_status', array($clientOfferAccepted, $clientOfferCancelled))
->whereHas('host_offers', function ($query) use ($hostId) {
$query->where('host_id', $hostId);
});
});
不幸的是,这也返回了在主机_id所拥有的接受状态下的请求。
任何可能出错的想法?
非常感谢!