⚡️ Laravel: when() — условная магия в запросах

Автор: Eugeny Nosenko
Дата публикации: 2025-08-13 13:04:41   17


⚡️ Laravel: when() — условная магия в запросах

Иногда в Eloquent запросах мы пишем кучу if, чтобы добавить фильтры. Но есть способ красивее — метод when().

$query = User::query()
    ->when(request('role'), fn($q, $role) => 
        $q->where('role', $role)
    )
    ->when(request('active'), fn($q) => 
        $q->where('active', true)
    )
    ->get();

📌 Что делает when():

  • Проверяет условие (первый аргумент)
  • Если оно true — выполняет колбэк (второй аргумент)
  • Если false — пропускает

💡 Идеально для динамических фильтров, когда часть параметров может отсутствовать.

🚀 Используйте when(), чтобы писать меньше кода и избавляться от нагромождений if.


Оставить комментарий:
Имя:
Комментарий: