Laravel雄辩得到有条件的结果在哪里

时间:2018-01-10 11:55:03

标签: laravel eloquent relation

我有这张表participations

| active   | customer_id   | doctor_id
| -------- | ------------- | ----------
| true     | 1             | 5         
| true     | 2             | 5         
| true     | 3             | 5         

我正在努力让除了那些已经分配给客户的医生以外的所有医生。

我的医生模型中的参与关系:

public function participations() {
  return $this->hasMany(Participation::class);
}

我的医生模型有这种范围方法:

public function scopeOnlyAvailable($query, $customerId = 1) {
  return $query->whereHas('participations', function($query) use ($customerId) {
    $query->where('customer_id', '!=', $customerId);
  }
}

使用此范围,我不会获得包含customer_id 1的数据集,而是获取所有其他数据集。这就是问题所在,因为它们包含同一位医生(我不想要)。

1 个答案:

答案 0 :(得分:1)

使用whereDoesntHave()方法:

/##([^}]+)##