LaravelwhereHas — это метод запроса Eloquent, используемый в Laravel, популярной платформе PHP. Он позволяет запрашивать записи на основе существования связанных записей в определенном отношении.
Вот некоторые часто используемые методы, связанные с «whereHas» в Laravel, а также примеры кода:
whereHas
: этот метод фильтрует запрос на основе существования связанной записи в указанном отношении.
$users = User::whereHas('posts', function ($query) {
$query->where('status', 'published');
})->get();
В этом примере мы извлекаем пользователей, у которых есть хотя бы одна опубликованная публикация.
orWhereHas
: этот метод добавляет условие «или» к методу «whereHas», позволяя получать записи, соответствующие любому из условий.
$users = User::whereHas('posts', function ($query) {
$query->where('status', 'published');
})->orWhereHas('comments', function ($query) {
$query->where('approved', true);
})->get();
Здесь мы извлекаем пользователей, которые опубликовали сообщения или одобрили комментарии.
whereDoesntHave
: этот метод фильтрует запрос на основе отсутствия связанной записи в указанном отношении.
$users = User::whereDoesntHave('posts')->get();
В этом примере извлекаются пользователи, у которых нет сообщений.
has
: этот метод позволяет запрашивать записи на основе существования любых связанных записей в указанном отношении.
$users = User::has('posts')->get();
Здесь мы извлекаем пользователей, у которых есть сообщения.
doesntHave
: этот метод позволяет запрашивать записи на основе отсутствия каких-либо связанных записей в указанном отношении.
$users = User::doesntHave('posts')->get();
В этом примере извлекаются пользователи, у которых нет сообщений.