Условный подзапрос Laravel со связанной моделью последняя запись - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь построить запрос по связанной модели, отношение которой hasMany, где я хочу запросить users с properties, где последнее свойство имеет unit_id, group_id or team_id

то, что я пробовал, но не работает

$users = User::with('properties', function($query) use($catId) {
                $query->where('team_id', $catId)
                    ->orWhere('group_id', $catId)
                    ->orWhere('unit_id', $catId);
            })->get();

эта возвращает все записи

еще одна попытка

$q = User::with(['properties' =>function($query) use($catId) {

                $query->latest()->where('team_id', $catId)
                    ->orWhere('group_id', $catId)
                    ->orWhere('unit_id', $catId);
            }]);

, которая снова возвращает все записи

1 Ответ

0 голосов
/ 25 мая 2018

Не используйте with, используйте whereHas:

$users = User::whereHas('properties', function($query) use ($catId) {
          $query->where('team_id', $catId)
                ->orWhere('group_id', $catId)
                ->orWhere('unit_id', $catId);
})->get();
...