我有一个包含id,name,email和
列的用户模型包含列ID,名称,代码和
的课程模型数据透视表course_user。
课程和用户具有多对多关系
course_user表包含列course_id,user_id,section
在参加课程时,有些用户会被列为“待定”课程。在pivotots section列中,一些用户将被列为' A',' B'在栏目栏中等。
问题:我希望获得至少一位用户所采用的课程,其中一部分是'待定' 到目前为止,我已尝试过这些: 在课程模型中:
public function users(){
return $this->belongsToMany(User::class)
->withPivot('section');
->wherePivot('section', 'Pending');
}
我在课程模型中试过的另一种方法:
public function pendingUsers(){
return $this->belongsToMany(User::class)
->withPivot('section')
->wherePivot('section', 'like', 'Pending');
}
但所有这些都给了我所有的课程。 现在,这项工作怎么办?
答案 0 :(得分:3)
定义关系:
public function users()
{
return $this->belongsToMany(User::class)->withPivot('section');
}
然后:
Course::whereHas('users', function($q) {
$q->where('course_user.section', 'Pending');
})
->get();