Laravel 关系使用 Where

Laravel relationships use Where

这段关系在我的Maintenance.php

  public function contactedContractor()
    {
        return $this->hasMany(ContactedContractor::class, 'maintenance_id');
    }

我想在我的控制器中的查询中使用关系

$contractor_maintenances = Maintenance::whereHas('contactedContractor', function ($query) {
                                                    return $query->where('contacted_contractors.user_id', '=', 8);
                                                })
                                                        ->where('contacted_contractors.user_id', $contractor_user_id)
                                                        ->latest('maintenances.created_at')
                                                        ->get();

但是 where 子句不起作用给我这个错误

Unknown column 'contacted_contractors.user_id' in 'where clause

如何使用 where 子句?

您已通过查询。 Maintenance 没有 user_id

->where('contacted_contractors.user_id', $contractor_user_id)

按以下方式传递您的查询。

$contractor_maintenances = Maintenance::whereHas('contactedContractor', function ($query) use ($contractor_user_id) {
                                return $query->where('user_id', $contractor_user_id);
                            })->latest('maintenances.created_at')->get();