Laravel: Присоединяйтесь, только если существует другая модель Eloquent

У меня 2 модели, User а также Package, У пользователя много пакетов, и каждый пакет принадлежит одному пользователю. Я хочу получить случайное количество пользователей из базы данных, НО только если у них есть пакеты, что-то вроде этого:

return self::orderBy(\DB::raw('RAND()'))->packages()->take(6)->get();

packages() как просто, как это:

return $this->hasMany($packageModel);

Я перепутал where('package.name', != ,'') на запрос, но это не работает (по-прежнему возвращает пользователя с пустыми пакетами). Я хочу взять 6 случайных пользователей, которые имеют пакеты. Есть ли решение для этого?

1

Решение

Решение по Мэтт Барроу.

Использование:

self::with('packages')->has('packages')->orderBy(\DB::raw('RAND()'))->take(6)->get();

has Метод возвращает только модель с этим отношением.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]