Метод firstWhere
Метод firstWhere применяется к коллекции и возвращает первый элемент, который соответствует условию фильтрации. Первым параметром передаётся имя ключа, вторым - оператор сравнения, третьим - значение. Если оператор не указан, используется равенство. Метод возвращает найденный элемент или null, если элемент не найден.
Синтаксис
<?php
$collection->firstWhere($key, $operator, $value);
?>
Пример
Давайте найдём первую статью со статусом 'published':
<?php
use AppModelsArticle;
$articles = Article::all();
$res = $articles->firstWhere('status', 'published');
echo $res->title;
?>
Результат выполнения кода:
"Article 1"
Пример
Давайте найдём первую статью с id больше 5:
<?php
use AppModelsArticle;
$articles = Article::all();
$res = $articles->firstWhere('id', '>', 5);
echo $res->id . ' - ' . $res->title;
?>
Результат выполнения кода:
"6 - Article 6"
Пример
Давайте найдём первую статью с количеством просмотров меньше 100:
<?php
use AppModelsArticle;
$articles = Article::all();
$res = $articles->firstWhere('views', '<', 100);
if ($res) {
echo $res->title . ' - ' . $res->views;
} else {
echo 'Not found';
}
?>
Результат выполнения кода:
"Article 3 - 45"
Пример
Давайте найдём первую статью, у которой поле 'category_id' равно 2, и выведем её заголовок:
<?php
use AppModelsArticle;
$articles = Article::all();
$res = $articles->firstWhere('category_id', 2);
echo $res ? $res->title : 'Not found';
?>
Результат выполнения кода:
"Article 4"