У меня есть модель User, которая применяется как для тренеров, так и для студентов. В моей бизнес-логике у тренеров есть студенты, назначенные для определенной единицы, поэтому я выстроил между ними отношения многие ко многим
public function students()
{
return $this->belongsToMany(User::class, 'trainer_student',
'trainer_id','student_id');
}
public function trainers()
{
return $this->belongsToMany(User::class, 'trainer_student','student_id', 'trainer_id');
}
Оба в модели User. Я проверил базу данных, и есть 8 студентов, связанных с тренером для определенного подразделения.
"trainer_student" Table Photo .
Итак, я сделал этот запрос с Тинкером:
$trainer = User::findOrFail(21);
$trainer->students()->pluck('id');
выход .
Но если я сделаю запрос, как обычно:
DB::table('trainer_student')->where('trainer_id',21)->pluck('student_id')
выход .
Что происходит? Почему отношения показывают меньше студентов? Что я делаю не так?
Спасибо!