Laravel Eloquent - 返回Where Has +Where

Jun*_*gie -1 laravel eloquent

我有一些客户通过订单有很多包裹。

public function parcels()
    {
        return $this->hasManyThrough(Parcel::class, Order::class);
    }
Run Code Online (Sandbox Code Playgroud)

我只想退回包裹数量超过 0 且状态成功的客户。但我不知道如何添加包裹状态条件。目前,此声明为我提供了拥有包裹的客户列表。 $customers = Customer::has('parcels', '>' , 0)->get();

Lui*_*gel 5

您可以使用该whereHas方法。

$customers = Customer::whereHas('parcels', function ($query) {
    $query->where('status', 'successful');
})->get();
Run Code Online (Sandbox Code Playgroud)