Метод whereNone
Метод whereNone применяется к запросу Eloquent
или Query Builder и возвращает тот же запрос,
дополненный условием исключения. Он полезен, когда нужно
отфильтровать записи, которые не соответствуют ни одному
из переданных условий. Первым параметром передаётся
замыкание, которое принимает объект запроса, вторым
необязательным параметром можно указать логическую связку
(по умолчанию 'and').
Синтаксис
<?php
Model::whereNone($callback, $boolean = 'and');
?>
Пример
Давайте исключим статьи, у которых поле 'status'
равно 'draft' или 'archived':
<?php
use AppModelsArticle;
$articles = Article::whereNone(function ($query) {
$query->where('status', 'draft')
->orWhere('status', 'archived');
})->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"article 1"
"article 2"
"article 3"
Пример
Давайте исключим статьи, у которых 'id' меньше 5
или поле 'views' больше 100:
<?php
use AppModelsArticle;
$articles = Article::whereNone(function ($query) {
$query->where('id', '<', 5)
->orWhere('views', '>', 100);
})->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"article 5"
"article 6"
"article 7"
Пример
Давайте исключим статьи, у которых поле 'category_id'
равно 1 или 2, и при этом 'is_published'
равно true:
<?php
use AppModelsArticle;
$articles = Article::whereNone(function ($query) {
$query->where('category_id', 1)
->orWhere('category_id', 2)
->where('is_published', true);
})->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
"article 3"
"article 4"
"article 5"