Laravel 仅获取特定关系记录

Laravel 仅获取特定关系记录,laravel,laravel-5,eloquent,Laravel,Laravel 5,Eloquent,我有一个客户模型和存款模型关系: 在存款模型表中,我有一个列:campaign\u id 在客户机模型中,我有: public function deposits() { return $this->hasMany(ClientDeposit::class, 'client_id'); } 我做一个简单的查询: 此代码返回具有“campaign_id”、“2”以及所有其他campaign_id的客户,但也包含存款 clients[0:{deposits: [id: 18507,

我有一个客户模型和存款模型关系: 在存款模型表中,我有一个列:campaign\u id 在客户机模型中,我有:

public function deposits()
{
    return $this->hasMany(ClientDeposit::class, 'client_id');
}
我做一个简单的查询:

此代码返回具有“campaign_id”、“2”以及所有其他campaign_id的客户,但也包含存款

clients[0:{deposits: [id: 18507, client_id: 162186, user_id: 22, campaign_id: 2, amount: 100, method_id: null
0: {id: 18507, client_id: 162186, user_id: 22, campaign_id: 2, amount: 100, method_id: null,…}

1: {id: 18505, client_id: 162186, user_id: 22, campaign_id: 2, amount: 100, method_id: null,…}

2: {id: 18506, client_id: 162186, user_id: 22, campaign_id: 10, amount: 100, method_id: null,…}

3: {id: 18498, client_id: 162186, user_id: 22, campaign_id: 3, amount: 100, method_id: null,…}}]
我希望客户记录中的关系只返回活动id为2的存款,而不是所有其他相关的存款

$query->with([
    'deposits' => function($) {
        $q->where('campaign_id', '2');
    }
])
$query->with([
    'deposits' => function($) {
        $q->where('campaign_id', '2');
    }
])