Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 03 квітня, 2025
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

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()
        ]);
    }
}

Ці скорочені методи роботи з датами створюють документовані запити, які чітко відображають ваші часові обмеження без складності ручних порівнянь дат