Метод findMany
Метод findMany применяется к запросу Eloquent
или Query Builder и возвращает коллекцию моделей,
найденных по переданным идентификаторам. Первым
параметром передаётся массив значений первичного ключа.
Вторым параметром можно передать массив колонок,
которые нужно выбрать.
Синтаксис
<?php
Model::findMany($ids, $columns);
?>
Пример
Давайте найдём статьи с идентификаторами 1, 3 и 5:
<?php
use AppModelsArticle;
$res = Article::findMany([1, 3, 5]);
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"article 1"
"article 3"
"article 5"
Пример
Давайте найдём пользователей с идентификаторами 2, 4 и 6,
но выберем только поля name и email:
<?php
use AppModelsUser;
$res = User::findMany([2, 4, 6], ['name', 'email']);
foreach ($res as $user) {
echo $user->name . ' - ' . $user->email;
}
?>
Результат выполнения кода:
"user1 - user1@mail.com"
"user2 - user2@mail.com"
"user3 - user3@mail.com"
Пример
Метод findMany можно использовать в цепочке
с другими методами построителя запросов. Например,
отсортируем найденные записи по возрастанию:
<?php
use AppModelsArticle;
$res = Article::findMany([1, 3, 5])->sortBy('id');
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"article 1"
"article 3"
"article 5"
Пример
Если передать пустой массив, метод вернёт пустую коллекцию:
<?php
use AppModelsArticle;
$res = Article::findMany([]);
echo $res->isEmpty() ? 'Collection is empty' : 'Collection is not empty';
?>
Результат выполнения кода:
"Collection is empty"
Смотрите также
-
метод
find,
который ищет одну запись по первичному ключу -
метод
findOrFail,
который ищет запись или выбрасывает исключение -
метод
first,
который возвращает первую запись из результата -
метод
get,
который выполняет запрос и возвращает коллекцию