2

This relationship is in my Maintenance.php

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

I want to use the relationship in a query in my controller

$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();

but the where clause is not working giving me this error

Unknown column 'contacted_contractors.user_id' in 'where clause

How do I use the where clause?

user3714932
  • 1,253
  • 2
  • 16
  • 29

1 Answers1

3

You've passed in the query. Maintenance doest not have user_id

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

Pass your query as below.

$contractor_maintenances = Maintenance::whereHas('contactedContractor', function ($query) use ($contractor_user_id) {
                                return $query->where('user_id', $contractor_user_id);
                            })->latest('maintenances.created_at')->get();
Dilip Hirapara
  • 14,810
  • 3
  • 27
  • 49