Иногда в 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.
Хотите такой же результат?
Бесплатно посчитаем ваш проект и покажем, где автоматизация даст максимальный эффект.
Обсудить проект →
Комментарии · 0