Метод whereBetween
Метод whereBetween применяется к запросу Eloquent
или Query Builder и возвращает тот же запрос,
дополненный условием выборки по диапазону.
Первым параметром передаётся имя колонки,
вторым - массив из двух значений: нижняя и верхняя граница.
Значения включаются в диапазон.
Метод генерирует SQL условие вида
BETWEEN ... AND ....
Синтаксис
<?php
Model::whereBetween($column, [$min, $max]);
?>
Пример
Давайте отфильтруем статьи, у которых поле 'id'
находится в диапазоне от 2 до 4:
<?php
use AppModelsArticle;
$articles = Article::whereBetween('id', [2, 4])->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["article 2", "article 3", "article 4"]
Пример
Давайте отфильтруем пользователей с возрастом
от 18 до 30 лет:
<?php
use AppModelsUser;
$users = User::whereBetween('age', [18, 30])->get();
foreach ($users as $user) {
echo $user->name;
}
?>
Результат выполнения кода:
["John", "Mary", "Alex", "Anna"]
Пример
Давайте отфильтруем заказы по дате создания
за последние 7 дней:
<?php
use AppModelsOrder;
use CarbonCarbon;
$startDate = Carbon::now()->subDays(7);
$endDate = Carbon::now();
$orders = Order::whereBetween('created_at', [$startDate, $endDate])->get();
foreach ($orders as $order) {
echo $order->id . " - " . $order->total;
}
?>
Результат выполнения кода:
["1 - 150.50", "2 - 200.00", "3 - 89.99"]
Пример
Давайте отфильтруем товары по цене в диапазоне
от 100 до 500 и отсортируем их по цене:
<?php
use AppModelsProduct;
$products = Product::whereBetween('price', [100, 500])
->orderBy('price', 'asc')
->get();
foreach ($products as $product) {
echo $product->name . " - " . $product->price;
}
?>
Результат выполнения кода:
["Product A - 120.00", "Product B - 250.00", "Product C - 450.00"]
Смотрите также
-
метод
whereNotBetween,
который выбирает записи вне указанного диапазона -
метод
whereIn,
который фильтрует по списку значений -
метод
whereNull,
который выбирает записи с пустым полем -
метод
get,
который выполняет запрос и возвращает коллекцию