我有一个包含 id、name、email 和列的用户模型
包含 id、name、code 和列的类(class)模型
一个数据透视表 course_user。
Course 和 User 是多对多的关系
course_user 表包含 course_id、user_id、section 列
在学习类(class)时,部分用户将在枢轴部分列中列为“待定”,部分用户将在部分列中列为“A”、“B”等。
问题:我想获得那些至少有一个用户参加的类(class),并且部分是“待定” 到目前为止,我已经尝试过这些: 在类(class)模型中:
public function users(){
return $this->belongsToMany(User::class)
->withPivot('section');
->wherePivot('section', 'Pending');
}
我在类(class)模型中尝试过的另一种方法:
public function pendingUsers(){
return $this->belongsToMany(User::class)
->withPivot('section')
->wherePivot('section', 'like', 'Pending');
}
但是所有这些都给了我所有的类(class)。 现在,如何完成这项工作?
最佳答案
定义关系:
public function users()
{
return $this->belongsToMany(User::class)->withPivot('section');
}
然后:
Course::whereHas('users', function($q) {
$q->where('course_user.section', 'Pending');
})
->get();
关于php - 基于 laravel 中的附加数据透视表列进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48398139/