Laravel参数分组(orWhere)无法按预期工作

时间:2017-11-14 06:50:19

标签: php database laravel eloquent

我的数据模型如下:一个请求有零个或多个商品。请求具有以下状态:已接受,已取消,待处理。优惠有一个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所拥有的接受状态下的请求。

任何可能出错的想法?​​

非常感谢!

0 个答案:

没有答案