我有一个查询,以查找特定活动中的注册学生。在用户模型上:
public function enrolledStudents($activity)
{
$students = $activity->students()
->wherePivot('user_id', $this->id)
->get();
return $students;
}
活动模型的students
方法是这样的:
public function students()
{
return $this->belongsToMany('Student', 'activity_student', 'activity_id', 'student_id')
->withPivot('user_id')
->withTimestamps();
}
我想要另一种方法来查找未参加此活动的学生 - 我该怎么办呢?
即。 $用户>学生() - > notEnrolled($活性)
答案 0 :(得分:2)
基本上,你必须来自Student
角度。像这样:
$students = Student::whereDoesntHave('activities', function($q) use ($activity){
$q->where('activity_id', $activity->id);
})->get();
请注意,此方法很新,因此您可能需要使用composer udpate
更新Laravel