Les étendues des requêtes en  Laravel

Les étendues des requêtes en Laravel

L'une des fonctionnalités fournies par Laravel est la possibilité d'utiliser des "étendues" ou "portées" lors de l'interrogation des données de la base de données. Dans cet article, nous examinerons ensemble de plus près ce que sont les portées de requête et comment vous pouvez les utiliser dans votre application Laravel.

Une étendue de requête est un moyen d'encapsuler un ensemble commun de contraintes que vous pouvez appliquer à une requête et de réutiliser cette logique dans plusieurs parties de votre application. Les étendues peuvent être utilisées pour filtrer, trier ou modifier les données renvoyées par une requête, et peuvent être facilement enchaînées pour créer des requêtes complexes.

Pour créer une nouvelle étendue de requête, vous pouvez utiliser la méthode d'étendue sur un modèle. Par exemple, vous pouvez créer une portée qui ne renvoie que les enregistrements dont la colonne de statut est définie sur publié :

class Post extends Model
{
    public function scopePublished($query)
     {
         return $query->where('status', 'published');
     }
}

Une fois que vous avez défini une étendue, vous pouvez l'utiliser dans n'importe quelle requête en enchaînant la méthode d'étendue sur le générateur de requêtes. Par exemple, vous pouvez récupérer tous les articles publiés en appelant Post::published()->get().

Vous pouvez également utiliser le paramètre with pour transmettre des valeurs à votre portée, comme ceci :

class Post extends Model
{
     public function scopePublished($query, $status)
     {
    return $query->where('status', $status);
     }
}

Vous pouvez utiliser cette étendue comme ceci :

$publishedPosts = Post ::published("published")->get();

Vous pouvez également utiliser plusieurs étendues dans la même requête, cela ajoutera toutes les conditions à la requête. Par exemple:

$publishedPostsWithTitle = Post::published("published")
                                  ->withTitle("Laravel Query Scope")
                                  ->get();

Les étendues de requête peuvent vous aider à garder votre code propre et organisé. Cela facilite également la modification de la logique sous-jacente de vos requêtes sans avoir à mettre à jour le code à plusieurs endroits. Vous pouvez l'utiliser pour un filtrage et une recherche complexes, vous pouvez également rendre votre portée globale pour l'utiliser partout dans votre projet.

En conclusion, les portées ou étendues de requête sont un outil puissant qui peut vous aider à écrire du code plus maintenable et organisé dans vos applications Laravel. Ils vous permettent d'encapsuler une logique de requête commune et de la réutiliser dans votre application, ce qui vous aide à garder votre base de code organisée et facile à comprendre.

Did you find this article valuable?

Support Jocelin Kisenga by becoming a sponsor. Any amount is appreciated!