РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
262 of 1392 menu

Метод unless

Метод unless применяется к запросу Eloquent или Query Builder и позволяет применять замыкание только в том случае, если переданное условие является ложным. Если условие истинно, замыкание не выполняется, и запрос остаётся неизменным. В качестве первого параметра передаётся условие, вторым - замыкание, которое получает экземпляр запроса.

Синтаксис

<?php Model::unless($condition, function ($query) { // Применяем условия, если $condition === false }); ?>

Пример 1

Давайте условно применим фильтрацию к запросу, если переменная 'status' не равна 'published':

<?php use AppModelsArticle; $status = 'draft'; $res = Article::unless($status === 'published', function ($query) { $query->where('status', 'draft'); })->get(); foreach ($res as $article) { echo $article->title; } ?>

Результат выполнения кода:

"article draft 1" "article draft 2"

Пример 2

Давайте условно применим сортировку, если включена опция 'sort':

<?php use AppModelsArticle; $sort = false; $res = Article::unless($sort, function ($query) { $query->orderBy('id', 'desc'); })->get(); foreach ($res as $article) { echo $article->id . ' ' . $article->title; } ?>

Результат выполнения кода:

"5 article 5" "4 article 4" "3 article 3" "2 article 2" "1 article 1"

Пример 3

Давайте условно применим поиск по 'id', если параметр передан в запросе:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppModelsArticle; class ArticleController extends Controller { public function index(Request $request) { $id = $request->input('id'); $res = Article::unless(!$id, function ($query) use ($id) { $query->where('id', $id); })->get(); foreach ($res as $article) { echo $article->title; } } } ?>

Смотрите также

  • метод when,
    который применяет условия при истинном условии
  • метод where,
    который добавляет базовое условие выборки
  • метод get,
    который выполняет запрос и возвращает коллекцию
  • метод tap,
    который позволяет выполнить действие с запросом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить