Метод whereBelongsTo
Метод whereBelongsTo применяется к запросу Eloquent
и позволяет отфильтровать записи по принадлежности к
определённой связанной модели. Первым параметром
передаётся экземпляр модели, вторым необязательным
параметром - имя отношения. Метод автоматически определяет
внешний ключ и выполняет фильтрацию.
Синтаксис
<?php
Model::whereBelongsTo($relatedModel, $relationName = null);
?>
Пример
Давайте отфильтруем статьи, которые принадлежат пользователю
с id равным 1:
<?php
use AppModelsArticle;
use AppModelsUser;
$user = User::find(1);
$articles = Article::whereBelongsTo($user)->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["article 1", "article 2", "article 3"]
Пример
Давайте укажем имя отношения явно, если оно отличается от стандартного:
<?php
use AppModelsArticle;
use AppModelsUser;
$user = User::find(1);
$articles = Article::whereBelongsTo($user, 'author')->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["article 1", "article 3"]
Пример
Отфильтруем комментарии, принадлежащие определённой статье:
<?php
use AppModelsComment;
use AppModelsArticle;
$article = Article::where('title', 'article 2')->first();
$comments = Comment::whereBelongsTo($article)->get();
foreach ($comments as $comment) {
echo $comment->text;
}
?>
Результат выполнения кода:
["comment 1", "comment 2"]
Смотрите также
-
метод
belongsTo,
который определяет отношение "принадлежит" -
метод
whereHas,
который фильтрует по наличию связанных записей -
метод
whereRelation,
который фильтрует по условию на связанную модель -
метод
get,
который выполняет запрос и возвращает коллекцию