Laravel Eloquent - 返回 Where Has + Where [重复]

Posted

技术标签:

【中文标题】Laravel Eloquent - 返回 Where Has + Where [重复]【英文标题】:Laravel Eloquent - Return Where Has + Where [duplicate] 【发布时间】:2022-01-09 19:20:48 【问题描述】:

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

public function parcels()
    
        return $this->hasManyThrough(Parcel::class, Order::class);
    

我只想退回包裹超过 0 且状态为成功的客户。 但是我不知道如何添加包裹状态的条件。目前,这份声明给了我一份有包裹的客户名单。 $customers = Customer::has('parcels', '>' , 0)->get();

【问题讨论】:

【参考方案1】:

您可以使用whereHas 方法。

$customers = Customer::whereHas('parcels', function ($query) 
    $query->where('status', 'successful');
)->get();

【讨论】:

以上是关于Laravel Eloquent - 返回 Where Has + Where [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 在 Eloquent 模型中返回自定义额外数据

laravel 返回与 eloquent 和 laravel 的关系

在 Laravel 中,哪些 Eloquent 方法返回数据,哪些返回对象?

laravel:关系方法必须返回 Illuminate\Database\Eloquent\Relations\Relation 类型的对象

检查从 Laravel 8 中 eloquent 返回的特定值

Laravel 4 Eloquent 返回错误的 ID