Отношения между 3 моделями в Laravel - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь установить связь между 3 моделями в Laravel 5.6

Вот мои таблицы

отделов

  • id
  • имя

субъекты

  • id
  • имя

учителя

  • удостоверение личности
  • имя

обучение

  • id_teacher
  • id_department
  • id_subject

Отношения между всеми таблицами много-много для многих.

  • Учитель может преподавать много предметов вмногие отдел

  • отдел принадлежит многим субъектам

  • субъект принадлежит многим отделам

Каксделать эти отношения внутри Учителя, Отдела и Предметных Моделей?

1 Ответ

0 голосов
/ 07 мая 2018

Вы можете попробовать что-то вроде этого:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Department extends Model
{
    /**
     * The teachs that belong to the department.
     */
    public function teachs()
    {
        return $this->belongsToMany('App\Teach', 'teach_department', 'department_id', 'teach_id');
    }
}

class Subject extends Model
{
    /**
     * The teachs that belong to the subject.
     */
    public function teachs()
    {
        return $this->belongsToMany('App\Teach', 'teach_subject', 'subject_id', 'teach_id');
    }
}

class Teacher extends Model
{
    /**
     * The teachs that belong to the teacher.
     */
    public function teachs()
    {
        return $this->belongsToMany('App\Teach', 'teach_teacher', 'teacher_id', 'teach_id');
    }
}

class Teach extends Model
{
    /**
     * The departments that belong to the teach.
     */
    public function departments()
    {
        return $this->belongsToMany('App\Department', 'teach_department', 'teach_id', 'department_id');
    }

    /**
     * The subjects that belong to the teach.
     */
    public function subjects()
    {
        return $this->belongsToMany('App\Subject', 'teach_subject', 'teach_id', 'subject_id');
    }

    /**
     * The teachers that belong to the teach.
     */
    public function teachers()
    {
        return $this->belongsToMany('App\Teacher', 'teach_teacher', 'teach_id', 'teacher_id');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...