2015-03-20 4 views
0

У меня есть запрос, чтобы найти зарегистрированных учащихся в определенной деятельности. На модели пользователя:Как найти обратный запрос на искомый запрос

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(); 
} 

Я хочу, чтобы другой метод, чтобы найти студентов, которые не являются зачислен в этой деятельности - как я мог пойдите об этом?

I.e. $ user-> students() -> notEnrolled ($ activity)

ответ

2

В принципе, вы должны были бы исходить из угла Student. Что-то вроде этого:

$students = Student::whereDoesntHave('activities', function($q) use ($activity){ 
    $q->where('activity_id', $activity->id); 
})->get(); 

Обратите внимание, что этот метод является достаточно новым, так что вам, возможно, потребуется обновить Laravel с composer udpate

Смежные вопросы