РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
313 of 1392 menu

Метод whereRelation

Метод whereRelation применяется к запросу Eloquent и позволяет фильтровать записи по условиям, которые применяются к связанным моделям. Первым параметром передаётся имя отношения, вторым - колонка связанной таблицы, третьим - оператор сравнения, четвёртым - значение. Если оператор не указан, используется равенство. Этот метод удобен, когда нужно получить записи, удовлетворяющие условиям на связанные данные.

Синтаксис

<?php Model::whereRelation($relation, $column, $operator, $value); ?>

Пример

Давайте отфильтруем статьи, у которых есть комментарии с полем 'status' равным 'approved':

<?php use AppModelsArticle; $articles = Article::whereRelation('comments', 'status', 'approved')->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

["article 1", "article 3", "article 5"]

Пример

Давайте отфильтруем посты, у которых количество комментариев больше 5:

<?php use AppModelsPost; $posts = Post::whereRelation('comments', 'post_id', '>', 5)->get(); foreach ($posts as $post) { echo $post->title; } ?>

Результат выполнения кода:

["post 2", "post 4"]

Пример

Давайте отфильтруем пользователей, у которых есть заказы со статусом 'pending':

<?php use AppModelsUser; $users = User::whereRelation('orders', 'status', 'pending')->get(); foreach ($users as $user) { echo $user->name; } ?>

Результат выполнения кода:

["John Doe", "Jane Smith"]

Смотрите также

  • метод whereHas,
    который фильтрует по существованию связанных записей
  • метод whereDoesntHave,
    который фильтрует по отсутствию связанных записей
  • метод where,
    который фильтрует записи по условиям основной таблицы
  • метод get,
    который выполняет запрос и возвращает коллекцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить