Метод whereIn
Метод whereIn применяется к запросу Eloquent
или Query Builder и добавляет условие IN в SQL-запрос.
Первым параметром передаётся имя колонки,
вторым - массив или коллекция значений, среди которых
должно находиться значение поля.
Синтаксис
<?php
Model::whereIn($column, $values);
?>
Пример
Давайте отфильтруем статьи, у которых поле 'id'
находится в списке [1, 3, 5]:
<?php
use AppModelsArticle;
$ids = [1, 3, 5];
$articles = Article::whereIn('id', $ids)->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"article 1"
"article 3"
"article 5"
Пример
Отфильтруем пользователей с определёнными статусами из массива:
<?php
use AppModelsUser;
$statuses = ['active', 'pending'];
$users = User::whereIn('status', $statuses)->get();
foreach ($users as $user) {
echo $user->name;
}
?>
Результат выполнения кода:
"John Doe"
"Jane Smith"
"Bob Johnson"
Пример
Использование whereIn с коллекцией вместо массива:
<?php
use AppModelsArticle;
$collection = collect([2, 4, 6]);
$articles = Article::whereIn('id', $collection)->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"article 2"
"article 4"
"article 6"
Пример
Комбинирование whereIn с другими условиями:
<?php
use AppModelsArticle;
$categories = [1, 3];
$articles = Article::where('status', 'published')
->whereIn('category_id', $categories)
->orderBy('created_at', 'desc')
->get();
foreach ($articles as $article) {
echo $article->title . ' - ' . $article->category_id;
}
?>
Результат выполнения кода:
"Latest article - 3"
"Second article - 1"
"Third article - 3"
Смотрите также
-
метод
where,
который добавляет простое условие сравнения -
метод
whereNotIn,
который фильтрует записи НЕ входящие в список значений -
метод
orWhere,
который добавляет условие через ИЛИ -
метод
get,
который выполняет запрос и возвращает коллекцию