Self присоединяется и красноречивый - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть таблица пользователей, в которой содержатся все мои пользователи. Мое приложение позволяет родителям и их детям через их собственные адреса электронной почты, но я должен быть в состоянии сказать, что «ребенок 1 связан с родителем 1 и родителем 2». Я хочу сохранить все это в одной таблице, похоже это отношение многие-многие, поскольку многие пользователи могут принадлежать к любому числу других пользователей.

Как бы я выразил внутреннюю связь многие-многие в красноречивом?

Я поражаю только сеть своими попытками.

1 Ответ

0 голосов
/ 14 сентября 2018

Я бы подумал, что вы представляете это так же, как и любые другие отношения «многие ко многим»;единственное отличие состоит в том, что одна и та же модель User поддерживает как отношение по умолчанию, так и обратное соотношение:

public function parents(){
   return $this->belongsToMany(User::class, "users_users", "user_id", "parent_id");
}

public function children(){
    return $this->belongsToMany(User::class, "users_users", "parent_id", "user_id");
}

Примечание: у меня может быть user_id и parent_id в обратном направлении, но это можно легко отрегулировать.

Единственный улов, который я вижу в этом, - это попытка рекурсивно получить детей от детей, если это вызывает озабоченность, но в остальном это должно работать для базового «многие ко многим».

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