我一直在寻找一种方法来从 Laravel 的急切加载查询中对嵌套的 wheres 进行分组,假设我有 3 个模型, An Order, AReview和 a Product。为简单起见,Order有一个Review和一个Product。
我想获取所有的orders数据和reviews丢失或丢失的数据(我可以在代码中对它们进行分组,没有问题)。但我还想检查登录的用户是下订单的人(在课堂上)还是产品的卖家(在课堂上)。productbuyer_rateseller_rateuser_idOrderuser_idProduct
问题是我找不到方法告诉 Eloquent 我想要这个逻辑:
('reviews'.'buyer_rate' != null OR 'reviews'.'seller_rate' != null)
AND ('orders'.'user_id' == Auth::user()->id OR 'orders'.'producto'.'user_id' == Auth::user()->id)
这是我的代码:(但我无法创建第二个条件组)我的条件失败,因为它不会计算两组之间的 AND 逻辑。
$reviews = App\Order::with([
'review' => function ($q) {
$q->Where(function($query) { // Group Where buyer or seller's rate is missing.
$query->Where('buyer_rate', '!=', null);
$query->orWhere('seller_rate', '!=', null);
});
},
'producto' => function ($q) {
$q->select('id', 'user_id', 'nombre', 'precio', 'descripcion')
->orWhere('user_id', Auth::user()->id);
},
])
->orWhere('user_id', Auth::user()->id)
->get();
莫回无