Как организовать сложную связь между 2 таблицами в MySQL и Laravel
Делаю небольшой проект на laravel. Нужно связать 2 таблицы - Akts (заявки на ремонт оборудования) и Users (мастера, водители) (Там еще много таблиц, но они не участвуют здесь). Смысл связывания в том, что сотрудник может принять заявку, несколько сотрудников могут съездить на диагностику неисправного оборудования, могут съездить уже на ремонт продиагностированного оборудования. Т. е. получаются связи:
- Один ко многим - один сотрудник может зарегистрировать несколько заявок.
- Многие ко многим - на одну заявку по диагностике могут поехать несколько мастеров и мастер может ездить на множество заявок по диагностике.
- Многие ко многим - на одну заявку по ремонту могут поехать несколько мастеров и мастер может ездить на множество заявок по ремонту.
На заявки по диагностике и по ремонту могут ездить разные мастера, но может быть так, что принять продиагностировать и отремонтировать может один мастер.
В миграции для таблицы ЗАЯВКИ должно быть запись об отношении один ко многим:
$table->integer('user_id')->unsigned()->index()->nullable(); //id того кто принял заявку
$table->foreign('user_id')->references('id')->on('users');
Потом должны быть 2 таблицы pivot
Schema::create('users_akts', function (Blueprint $table) {
$table->increments('id');
$table->integer('akt_id')->unsigned()->index();
$table->foreign('akt_id')->references('id')->on('users')->onDelete('cascade');
$table->integer('user_id')->unsigned()->index();
$table->foreign('user_id')->references('id')->on('akts')->onDelete('cascade');
});
но как написать вторую pivot таблицу и как потом вписать в модели это и вытаскивать данные в контроллере отдельно диагностировавших и ремонтировавших?