ManytoMany Отношение между 3 таблицами Laravel - PullRequest
0 голосов
/ 04 мая 2020

У меня есть 3 таблицы с моделями, которые все принадлежат друг другу:

  • Batchyear
  • Оценка
  • Студент

A ученик может посещать множество batchyears, и их будет много grades, а у каждого grade будет много students.

Как получить отношения через Eloquent, чтобы student находился в определенном grade в определенном batchyear?

class Batch extends Model
{
    public $guarded = [];

    public function students()
    {
        return $this->belongsToMany(Student::class);
    }

    public function grades()
    {
        return $this->belongsToMany(Grade::class);
    }
}

, а здесь - оценка

class Grade extends Model
{
    public $guarded = [];

    public function students()
    {
        return $this->belongsToMany(Student::class);
    }

    public function batches(){
        return $this->belongsToMany(Batch::class);
    }
}

и ученики

class Student extends Model
{
    public $guarded = [];

    public function batches()
    {
        return $this->belongsToMany(Batch::class)->withPivot(['batch_id']);
    }

    public function grades()
    {
        return $this->belongsToMany(Grade::class);
    }
}

столы учеников. партии. оценки. batch_student, batch_grade. и grade_student. не решить проблему. если я выберу учащегося, он покажет всех учеников, которые находятся в предыдущей партии в этом классе. нужна таблица, как student_grade_batch. так 3 внешних ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...