Laravel withCount gebruiken om door te filteren

Met withCount tel je het aantal relaties. Bijvoorbeeld het aantal orders voor een product, dat kan er ongeveer zo uitzien

$products = Products::withCount('orders')->where('status', 1)->get();

Filteren op withCount

Stel dat je alleen de producten wilt hebben die een order hebben. Je kan dit doen met havingRaw.

$products = Products::withCount('orders')->where('status', 1)->havingRaw('orders_count > 0')->get();

Has optie gebruiken

Hoef je niet het aantal orders te weten maar wil je wel filteren op het aantal orders, dan kan je ook has gebruiken.
Bijvoorbeeld als je het aantal producten wilt weten die minimaal 3 orders hebben.

Products::has('orders', '>', 3)->where('status', 1)->get();

Plaats een reactie