我有这张表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的数据集,而是获取所有其他数据集。这就是问题所在,因为它们包含同一位医生(我不想要)。