Как сделать отношения в Laravel с несколькими сводными таблицами? - PullRequest
0 голосов
/ 11 ноября 2018

Я получил таблицы:

  • пользователей (идентификатор, имя, фамилия)
  • свадьбы (id, ...)
  • wedding_user (id, wedding_id, user_id, role_id)
  • wedding_user_permission (wedding_user_id ,mission_id)

И я хочу установить связь между моделью Wedding и WeddingUser (Wedding имеет много WeddingUser, WeddingUser принадлежит Wedding).

На самом деле, если я буду игнорировать отношения между уровнями, модель будет:

//Wedding Model 

public function users()
    {
        $users = WeddingUser::where('wedding_id', $this->id)->get();
        return $users;
    }

Но мне нужно сделать это с отношениями Ларавелла.

Я пробовал это:

public function users()
    {
        return $this->belongsToMany(
            'App\Models\WeddingUser',
            'wedding_user',
            'user_id'
        );
    }

Но выдает ошибку:

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'wedding_user' (SQL: select `wedding_user`.*, `wedding_user`.`user_id` as `pivot_user_id`, `wedding_user`.`wedding_user_id` as `pivot_wedding_user_id` from `wedding_user` inner join `wedding_user` on `wedding_user`.`id` = `wedding_user`.`wedding_user_id` where `wedding_user`.`user_id` in (1))

Как это сделать правильно?

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