Laravel спрощує запити з використанням дат завдяки виразним скороченим методам, які полегшують пошук за часовими критеріями у ваших запитах до бази даних. Ці інтуїтивні методи зменшують обсяг коду, роблячи умови з датами зрозумілішими.
Основна реалізація демонструє чіткий, семантичний синтаксис:
// Знайти записи з датами в минулому
$expiredSubscriptions = Subscription::wherePast('expires_at')->get();
// Знайти записи з датами в майбутньому
$upcomingEvents = Event::whereFuture('starts_at')->get();
// Знайти записи з датою сьогодні
$todaysAppointments = Appointment::whereToday('scheduled_for')->get();
Ось як ці методи оптимізують запити в системі управління бронюваннями:
class ReservationController extends Controller
{
public function dashboard()
{
return view('reservations.dashboard', [
'upcoming' => Reservation::whereFuture('check_in')
->where('status', 'confirmed')
->orderBy('check_in')
->get(),
'active' => Reservation::whereToday('check_in')
->orWhere(function($query) {
$query->whereToday('check_out')
->whereNotNull('checked_in_at');
})
->get(),
'past' => Reservation::wherePast('check_out')
->latest('check_out')
->limit(10)
->get(),
'pending_reviews' => Reservation::wherePast('check_out')
->whereNull('reviewed_at')
->where('status', 'completed')
->get()
]);
}
}
Ці скорочені методи роботи з датами створюють документовані запити, які чітко відображають ваші часові обмеження без складності ручних порівнянь дат