Метод where
Метод where применяется к запросу Eloquent
или Query Builder и возвращает тот же запрос,
дополненный условием выборки. Первым параметром
передаётся имя колонки, вторым - оператор сравнения,
третьим - значение. Если оператор не указан,
используется равенство.
Синтаксис
<?php
Model::where($column, $operator, $value);
?>
Параметры метода:
-
$column- имя колонки в таблице базы данных -
$operator- оператор сравнения (например, '=', '>', '<', '>=', '<=', '<>', 'like') -
$value- значение для сравнения
Пример с оператором равенства
Давайте отфильтруем статьи, у которых поле 'status'
равно 'published':
<?php
use App\Models\Article;
$res = Article::where('status', 'published')->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["article 1", "article 2", "article 3"]
Пример с оператором сравнения
Отфильтруем статьи с id больше 5:
<?php
use App\Models\Article;
$res = Article::where('id', '>', 5)->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["article 6", "article 7", "article 8"]
Пример с оператором LIKE
Найдём статьи, заголовок которых содержит слово 'php':
<?php
use App\Models\Article;
$res = Article::where('title', 'like', '%php%')->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["Learn PHP", "PHP basics", "Advanced PHP"]
Пример с несколькими условиями
Метод where можно вызывать несколько раз,
условия будут объединены через AND:
<?php
use App\Models\Article;
$res = Article::where('status', 'published')
->where('views', '>', 100)
->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["Popular article 1", "Popular article 2"]
Пример с массивом условий
Можно передать массив условий в метод where:
<?php
use App\Models\Article;
$res = Article::where([
['status', '=', 'published'],
['category_id', '=', 1],
['created_at', '>', '2024-01-01']
])->get();
foreach ($res as $article) {
echo $article->title;
}
?>
Смотрите также
-
метод
orWhere,
который добавляет условие через ИЛИ -
метод
whereIn,
который фильтрует по списку значений -
метод
whereNull,
который выбирает записи с пустым полем -
метод
get,
который выполняет запрос и возвращает коллекцию