Пользователь может иметь одну белую метку.
Whitelabel может иметь много пользователей.
У меня есть сводная таблица со столбцами whitelabel_id
и user_id
У меня оба отношения настроены с использованием ->belongsToMany()
(с обратным).
Я использую сводную таблицу, потому что у меня нет whitelabel_id в таблице пользователей (и я не буду вставлять ее), поэтому она определена как many-to-many
, но на самом деле это one-to-many
. Я просто получаю first()
белую метку, так как для каждого пользователя будет только одна.
Имея это в виду. Как мне select * users
с белой меткой пользователя, прошедшего аутентификацию?
У меня есть это, это работает, но это ли путь "Laravel"? Я чувствую, что он немного перегружен, и у Laravel будет сокращенный метод.
$user->when(auth()->user()->whitelabel->first(), function ($query) {
return
$query->whereIn('id', auth()->user()->whitelabel->first()->users->pluck('id'));
})
Это проверяет, есть ли у пользователя авторизации белая метка, а затем получает всех пользователей с одной и той же белой меткой.
У Laravel есть быстрое сокращение для этого?