Laravel отношения многие ко многим получают роль, разделяемую двумя пользовательскими моделями - PullRequest
0 голосов
/ 04 ноября 2018

вопрос прост, если у меня много-много отношений между пользователями и ролями, и у двух пользователей есть общая роль между ними, есть ли красноречивый способ получить эту общую роль, или мне нужно назвать каждую из их ролей и использовать два цикла foreach для соответствия их записям.

1 Ответ

0 голосов
/ 04 ноября 2018

Я думаю, что следующий запрос должен помочь:

$userId1 = 123; // just some assumption...
$userId2 = 234; // can of course be a user object as well

$roles = Role::query()
    ->whereHas('users', function ($query) use ($userId1) {
        $query->where('users.id', $userId1);
    })
    ->whereHas('users', function ($query) use ($userId2) {
        $query->where('users.id', $userId2);
    })
    ->get();

Словом, этот запрос в основном означает: Дайте мне все роли, которые связаны с пользователем с идентификатором $userId1 , а также пользователя с идентификатором $userId2.

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