Heim > Backend-Entwicklung > PHP-Tutorial > Verwenden von relativen Datumshelfern in Laravels Query Builder

Verwenden von relativen Datumshelfern in Laravels Query Builder

Johnathan Smith
Freigeben: 2025-03-05 15:29:10
Original
347 Leute haben es durchsucht

Using Relative Date Helpers in Laravel's Query Builder

Laravel Version 11.42 führt eine Reihe von praktischen relativen Datumsabfragen-Builder-Methoden ein und vereinfacht die Abfragelogik der Datumsbezogene. Obwohl es nicht erforderlich ist, alle Anwendungen für diese Methoden neu zu überarbeiten, bieten sie einen prägnanteren und leicht zu lesenden Vorteil für die relative Datumslogik im Modell. Schauen wir es uns mit dem Beispiel des Article -Modells an.

Angenommen, Sie haben einen Umfang, um veröffentlichte Artikel mit einem bestimmten Status zu erhalten, und das Datum published_at muss gleich oder früher als die aktuelle Zeit sein:

use Illuminate\Database\Eloquent\Builder;
use App\Models\Article;

public function scopeActive(): Article|Builder
{
    return $this->where('status', ArticleStatus::Published)
                ->where('published_at', '<=', now());
}
Nach dem Login kopieren

Sie können diesen Bereich an anderer Stelle in Ihrem Code verwenden, um Artikel nur an aktive Artikel zu beschränken.

Article::with('user', 'category', 'tags')
    ->active()
    ->orderByDesc('published_at')
    ->limit(20)
    ->get();
Nach dem Login kopieren

Mit Laravel 11.42 können wir nun eine kleine Anpassung an die scopeActive() -Methode zur Verwendung der relativen Datumsmethode vornehmen. Die whereNowOrPast -Methode kann unserer ursprünglichen Logik übereinstimmen:

$this->where('status', ArticleStatus::Published)
     ->whereNowOrPast('published_at');
Nach dem Login kopieren

Wenn Sie den Abfragebauer verwenden möchten, um Artikel mit der mit der Published gekennzeichneten Artikel zu finden, können Sie whereFuture() Methode verwenden:

$this->where('status', ArticleStatus::Published)
     ->whereFuture('published_at');
Nach dem Login kopieren

Was ist, wenn Sie Artikel finden möchten, die früher oder später als das heutige Datum sind? Die neuen relativen Datumshelferfunktionen umfassen or und not Varianten:

$this->whereAfterToday('published_at')
     ->orWhereBeforeToday('published_at');
Nach dem Login kopieren

Für alle neuen relativen Datumsmethoden, die in Laravel v11.42 hinzugefügt wurden, lesen Sie die Pull Request #54408. Diese Methoden befinden sich in einer neuen Funktion namens BuildsWhereDateClauses.

Das obige ist der detaillierte Inhalt vonVerwenden von relativen Datumshelfern in Laravels Query Builder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage