Merhaba,
$order = Order::with('orderItems', 'orderShippingFee')
->whereHas('orderItems', function ($q) {
$q->when(!auth()->user()->hasRole('owner'), function ($q) {
$q->where('seller_id', auth()->user()->parent_id);
}, function ($q) {
$q->where('seller_id', auth()->user()->id);
});
})
->whereHas('orderShippingFee', function ($q) {
$q->when(!auth()->user()->hasRole('owner'), function ($q) {
$q->where('seller_id', auth()->user()->parent_id);
}, function ($q) {
$q->where('seller_id', auth()->user()->id);
});
})
->where('uuid', $uuid)
->first();
Bu şekilde yazdığım zaman herhangi bir hata yok fakat seller_id auth id eşit olmayan varsa onlarda geliyor. Aşağıdaki gibi yazarsam işe yarıyor. İkisi arasındaki fark nedir? Üstteki kodun da çalışması gerekmiyor?
$order = Order::with(['orderItems' => function($query) {
$query->when(!auth()->user()->hasRole('owner'), function ($q) {
$q->where('seller_id', auth()->user()->parent_id);
}, function ($q) {
$q->where('seller_id', auth()->user()->id);
});
}, 'orderShippingFee' => function($query) {
$query->when(!auth()->user()->hasRole('owner'), function ($q) {
$q->where('seller_id', auth()->user()->parent_id);
}, function ($q) {
$q->where('seller_id', auth()->user()->id);
});
}])
->where('uuid', $uuid)
->first();