⚡️ Laravel: when() — условная магия в запросах
Автор:
Eugeny Nosenko
Дата публикации:
2025-08-13 13:04:41 365
Иногда в 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.