Maison > développement back-end > tutoriel php > Utilisation des aides à la date relative dans le constructeur de requête de Laravel

Utilisation des aides à la date relative dans le constructeur de requête de Laravel

Johnathan Smith
Libérer: 2025-03-05 15:29:10
original
345 Les gens l'ont consulté

Using Relative Date Helpers in Laravel's Query Builder

Laravel Version 11.42 présente un ensemble de méthodes pratiques de création de requête de datte relative, simplifiant la logique de requête liée à la date. Bien qu'il n'y ait pas besoin de refactoriser toutes les applications pour utiliser ces méthodes, elles fournissent un avantage plus concis et facile à lire à la logique de date relative dans le modèle. Jetons un coup d'œil à l'exemple du modèle Article.

Supposons que vous ayez une portée pour obtenir des articles publiés avec un statut spécifique, et la date published_at doit être égale ou antérieure à l'heure actuelle:

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

public function scopeActive(): Article|Builder
{
    return $this->where('status', ArticleStatus::Published)
                ->where('published_at', '<=', now());
}
Copier après la connexion

Vous pouvez utiliser cette portée ailleurs dans votre code pour limiter les articles aux articles actifs uniquement.

Article::with('user', 'category', 'tags')
    ->active()
    ->orderByDesc('published_at')
    ->limit(20)
    ->get();
Copier après la connexion

Maintenant, avec Laravel 11.42, nous pouvons faire un petit ajustement à la méthode scopeActive() pour utiliser la méthode de date relative. La méthode whereNowOrPast peut correspondre à notre logique d'origine:

$this->where('status', ArticleStatus::Published)
     ->whereNowOrPast('published_at');
Copier après la connexion

Si vous souhaitez utiliser le constructeur de requête pour trouver des articles marqués Published mais que vous êtes toujours à l'avenir, vous pouvez utiliser whereFuture() Méthode:

$this->where('status', ArticleStatus::Published)
     ->whereFuture('published_at');
Copier après la connexion

Et si vous voulez trouver des articles qui sont plus tôt ou plus tard que la date d'aujourd'hui? Les nouvelles fonctions d'assistance à date relative incluent les variantes or et not:

$this->whereAfterToday('published_at')
     ->orWhereBeforeToday('published_at');
Copier après la connexion

Pour toutes les nouvelles méthodes de date relative ajoutées dans Laravel V11.42, consultez la demande de traction # 54408. Ces méthodes sont situées dans une nouvelle fonctionnalité appelée BuildsWhereDateClauses.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal