⚡️ Laravel: when() — условная магия в запросах
Автор:
Eugeny Nosenko
Дата публикации:
2025-08-13 13:04:41 17

Иногда в 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
.