Nové metody dotazování na datum v aplikaci Eloquent ve verzi 11.42
Laravel pokračuje ve zlepšování zkušeností vývojářů pomocí nové sady metod v nástroji Query Builder, které zjednodušují dotazy založené na datu. Tyto metody, které byly představeny v nedávném požadavku pull request Jason McCreary, poskytují čitelnější a intuitivnější způsoby filtrování záznamů na základě dat.
Nové metody pro dotazy založené na datu
Aktualizace zavádí následující a další metody:
wherePast(): Vyhledá záznamy, u nichž je sloupec s datem v minulosti.whereNowOrPast(): Vyhledá záznamy, jejichž sloupec s datem je v minulosti nebo v aktuálním okamžiku.orWherePast(): Přidá podmínku OR pro minulá data.orWhereNowOrPast(): Přidá podmínku NEBO pro minulá nebo současná data.whereFuture(): Vybere záznamy, u nichž sloupec s datem spadá do budoucnosti.whereNowOrFuture(): Vyhledá záznamy, u nichž je sloupec s datem v budoucnosti nebo v aktuálním okamžiku.orWhereFuture(): Přidá podmínku OR pro budoucí data.orWhereNowOrFuture(): Přidá podmínku NEBO pro budoucí nebo současná data.
Jak tyto metody zlepšují dotazy
Dříve filtrování záznamů na základě relativních dat vyžadovalo slovní vyjádření. where podmínky, jako jsou:
$pastRecords = Model::where('date_column', '<', now())->get();
Díky novým metodám je stejný dotaz čitelnější:
$pastRecords = Model::wherePast('date_column')->get();
Toto vylepšení zvyšuje přehlednost i udržovatelnost kódu.
Příklady případů použití
Získat všechny předplatné, jejichž platnost vypršela
$expiredSubscriptions = Subscription::wherePast('expires_at')->get();
Najděte události, které se konají nyní nebo v budoucnu
$upcomingEvents = Event::whereNowOrFuture('event_date')->get();
Vyhledání objednávek zadaných v minulosti
$pastOrders = Order::wherePast('created_at')->get();
Dostupnost
Tyto metody jsou součástí nejnovější verze Laravel 11.42. Jejich úplnou implementaci si můžete prohlédnout v Žádost o stažení.
Díky těmto novým metodám dotazování na datum je práce s daty v systému Laravel intuitivnější, což dále zlepšuje zkušenosti vývojářů.