La portée des requêtes dans Laravel est une fonctionnalité très importante qui vous permet de définir certaines méthodes de requête couramment utilisées dans le modèle pour les réutiliser dans l'ensemble de l'application. Ces portées de requête peuvent être globales (s'appliquer à l'ensemble du modèle) ou locales (s'appliquer uniquement à une méthode du modèle).
Dans cet article, nous présenterons la définition, l'utilisation et certaines choses auxquelles il convient de prêter attention à la portée des requêtes dans Laravel.
- Définition de la portée de la requête
La portée de la requête est une fonction anonyme qui reçoit un paramètre $query, qui est une instance d'Eloquent query Builder. Dans cette fonction anonyme, vous pouvez effectuer certaines opérations de requête sur l'instance, telles que l'ajout de clauses Where, de clauses order by, etc.
Ce qui suit est un exemple de définition de portée de requête de base :
public function scopePublished($query) { return $query->where('status', '=', 'published'); }
Dans l'exemple ci-dessus, nous définissons une portée de requête nommée publiée, qui sera utilisée dans la requête. Ajouter automatiquement un clause Where pour filtrer les modèles publiés.
- Utiliser la portée de la requête
L'utilisation de la portée de la requête est très simple, il suffit d'appeler la méthode correspondante du modèle. Par exemple, si nous utilisons la portée de requête publiée dans l'exemple ci-dessus, il nous suffit d'appeler le code suivant :
$posts = Post::published()->get();
Le code ci-dessus renverra une collection de toutes les instances Post publiées.
Si vous devez transmettre des paramètres dans la portée de la requête, ajoutez simplement des paramètres dans cette méthode. Par exemple :
public function scopeCategory($query, $categoryId) { return $query->where('category_id', '=', $categoryId); }
Cette portée de requête peut être utilisée pour filtrer les articles de blog pour une catégorie spécifique.
$posts = Post::category(1)->get();
Le code ci-dessus renverra tous les articles de blog avec l'ID de catégorie 1.
Remarque : les étendues de requête peuvent être chaînées, vous pouvez donc utiliser plusieurs étendues de requête en même temps pour obtenir des résultats plus précis.
- Définition globale de la portée de la requête
Si vous souhaitez utiliser la même portée de requête dans tout le modèle, vous pouvez définir un domaine de portée de requête globale . Pour ce faire, appelez simplement la méthode de démarrage dans votre modèle et définissez une portée de requête globale à l'aide de la méthode static :: addGlobalScope.
Ce qui suit est un exemple de portée de requête globale de base :
protected static function boot() { parent::boot(); static::addGlobalScope('active', function (Builder $builder) { $builder->where('active', '=', 1); }); }
Dans l'exemple ci-dessus, nous définissons une portée de requête globale nommée active et la limitons pour les enregistrements dont le champ actif est égal à 1.
Désormais, lorsque vous interrogez le modèle dans n'importe quelle méthode, la portée de la requête prendra automatiquement effet.
- Supprimer la portée de la requête
Parfois, nous devrons peut-être supprimer la portée de la requête d'un modèle spécifique. Laravel fournit la méthode removeGlobalScope pour nous aider à y parvenir.
Par exemple, en supposant que nous ayons une portée de requête globale nommée active, nous pouvons utiliser la méthode suivante pour la supprimer :
$users = User::withoutGlobalScope('active')->get();
Le code ci-dessus ne renverra aucun effet actif. Restrictions de domaine pour tous les utilisateurs.
Remarque : Si vous souhaitez supprimer toutes les étendues de requête globales, vous pouvez utiliser la méthode withoutGlobalScopes.
$users = User::withoutGlobalScopes()->get();
Le code ci-dessus renverra tous les utilisateurs non limités par une portée de requête globale.
Summary
La portée des requêtes est une fonctionnalité extrêmement puissante dans Laravel. En utilisant des étendues de requête, vous pouvez facilement réutiliser les opérations de requête courantes dans votre application et organiser votre code plus clairement. Apprendre à utiliser correctement les étendues de requête peut non seulement améliorer votre productivité, mais également vous aider à créer des applications plus robustes.
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!

ToenhanceengagementAndCoheSionAmongDstributedTeamsBeyondzoom, implémentations de typeStrates: 1) OrganizeVirtualCoffeebreaksForInformalChats, 2) usEasynchronousToolSlikeslackFornon-Workdissions, 3) IntrodugamificationwithTeamGamesorChallengs, and4) encourage

Laravel10 introducesseveralBreakingChanges: 1) itRequiresphp8.1orHigher, 2) theRouserviceProviderNowUSESABOOTMethodForLoadingRoutes, 3) thewithetimestamps () MethodonEloventrelationShipSepresecated, and4) CLASSNOWPRES

TOMAINTAINFOCUSANDMOTIVATIONINREMOTEWork, CreateAstructuredenvironment, GestiondigitalDistractions, FosterMotivation ThroughsocialInteractions et legoalseting, maintien de la vie de vie et usureAppropriateTechnology.1) SetUpadediatedWorkspace andstickToaroutine.

TofosterCollaborationAndTrustinReMoteTeams, ImplementTheSeStrategies: 1) établir des communications structurées et structurées avec la PersonalCheck-Ins, 2) USECOLLABORATIVETOOLSFORTRANTRANSPARENCY, 3) Reconnaître les effets de recherche et 4) FosteracultureOftrustAdadaptabilité.

La dernière version de Laravel des principales caractéristiques comprend: 1. Laraveloctane améliore les performances des applications, 2. Amélioration des relations de support des usines et des définitions d'état, 3. Amélioration des commandes artisanales, 4. Amélioration de la gestion des erreurs, 5. Nouveaux accessoires et modificateurs éloquents. Ces caractéristiques améliorent considérablement l'efficacité du développement et les performances des applications, mais doivent être utilisées avec prudence pour éviter les problèmes potentiels.

TOCOMBATISALATION ANDONIELLESSIONSInRemotework, CompaniesshouldImplementRegular, significatif, fournit des émeutes et de l'usetéchnologie.

LaraveispopularForfull-stackdevelopmentbecauseitoffersaSEAmlessBlendofbackendPowerAndfrontendflexibility.1) itsbackendCapabilities, like eloquentorm, simplifydatabaseinteracts.2) thebladetemplatingngineallowsforclean, dynamichtmltemplate.3) Laravelmix

Les facteurs clés du choix d'une plate-forme de conférence vidéo incluent l'interface utilisateur, la sécurité et les fonctionnalités. 1) L'interface utilisateur doit être intuitive, comme le zoom. 2) La sécurité doit être prêtée attention et Microsoft Teams fournit un cryptage de bout en bout. 3) Les fonctions doivent faire correspondre les exigences, GoogleMeet convient aux réunions courtes et Ciscowebex fournit des outils de collaboration avancés.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit
