首页 > 解决方案 > Laravel 关系使用 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 子句?

标签: phplaraveleloquenteloquent-relationship

解决方案


您已通过查询。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();

推荐阅读