Метод whereNotBetween
Метод whereNotBetween применяется к запросу Eloquent или Query Builder и возвращает тот же запрос, дополненный условием выборки, исключающим записи с указанными значениями. Первым параметром передаётся имя колонки, вторым - массив с двумя значениями: минимальным и максимальным. Записи, значения которых не попадают в этот диапазон, будут включены в результат.
Синтаксис
<?php
Model::whereNotBetween($column, [$min, $max]);
?>
Пример
Давайте получим все статьи, у которых id не входит в диапазон от 2 до 4:
<?php
use AppModelsArticle;
$res = Article::whereNotBetween('id', [2, 4])->get();
foreach ($res as $article) {
echo $article->id . ' - ' . $article->title;
}
?>
Результат выполнения кода:
"1 - article 1"
"5 - article 5"
Пример
Получим пользователей, у которых возраст не входит в диапазон от 18 до 30 лет:
<?php
use AppModelsUser;
$res = User::whereNotBetween('age', [18, 30])->get();
foreach ($res as $user) {
echo $user->name . ' - ' . $user->age;
}
?>
Результат выполнения кода:
"John - 35"
"Alice - 16"
Пример
Применим whereNotBetween вместе с другим условием. Получим активные заказы, сумма которых не входит в диапазон от 1000 до 5000:
<?php
use AppModelsOrder;
$res = Order::where('status', 'active')
->whereNotBetween('amount', [1000, 5000])
->get();
foreach ($res as $order) {
echo $order->id . ' - ' . $order->amount;
}
?>
Результат выполнения кода:
"2 - 800"
"5 - 6000"
Пример
Используем whereNotBetween с датами. Получим продукты, созданные не в 2025 году (диапазон от начала до конца года):
<?php
use AppModelsProduct;
$res = Product::whereNotBetween('created_at', [
'2025-01-01',
'2025-12-31'
])->get();
foreach ($res as $product) {
echo $product->name . ' - ' . $product->created_at;
}
?>
Результат выполнения кода:
"Product A - 2024-12-15"
"Product B - 2026-01-10"
Смотрите также
-
метод
whereBetween,
который выбирает записи в заданном диапазоне -
метод
whereIn,
который фильтрует по списку значений -
метод
whereNull,
который выбирает записи с пустым полем -
метод
get,
который выполняет запрос и возвращает коллекцию