У меня 2 модели, User
а также Package
, У пользователя много пакетов, и каждый пакет принадлежит одному пользователю. Я хочу получить случайное количество пользователей из базы данных, НО только если у них есть пакеты, что-то вроде этого:
return self::orderBy(\DB::raw('RAND()'))->packages()->take(6)->get();
packages()
как просто, как это:
return $this->hasMany($packageModel);
Я перепутал where('package.name', != ,'')
на запрос, но это не работает (по-прежнему возвращает пользователя с пустыми пакетами). Я хочу взять 6 случайных пользователей, которые имеют пакеты. Есть ли решение для этого?
Решение по Мэтт Барроу.
Использование:
self::with('packages')->has('packages')->orderBy(\DB::raw('RAND()'))->take(6)->get();
has
Метод возвращает только модель с этим отношением.
Других решений пока нет …