Comment définir des politiques pour les modèles éloquents?
Jun 20, 2025 am 12:15 AMPour définir et utiliser efficacement les politiques dans l'ORM éloquente de Laravel, suivez ces étapes: 1. Créez une classe de politique en utilisant la commande artisan PHP Artisan Make: Policy Postpolicy --model = Post pour générer une politique spécifique au modèle ou autonome. 2. Enregistrez la politique dans AuthServiceProvider.php en mappant le modèle à sa politique dans le tableau des politiques $. 3. Définir des méthodes d'autorisation comme la mise à jour, la vue ou la suppression dans la classe de stratégie, chacune acceptant un utilisateur et éventuellement une instance de modèle pour appliquer des règles telles que les vérifications de propriété. 4. Appliquer les politiques dans les contr?leurs via $ this-> Authorize (), dans le middleware Utilisation de Can: Mettre à jour, publier ou dans des modèles de lame avec les directives @CAN, garantissant un contr?le d'accès propre, maintenable et cohérent tout au long de votre application.
Lorsque vous travaillez avec l'ORM éloquent de Laravel, la définition des politiques vous aide à gérer la logique d'autorisation de manière propre et organisée. L'idée principale est de séparer le contr?le d'accès de vos contr?leurs en utilisant des classes de stratégie dédiées.
Voici comment vous pouvez définir et utiliser efficacement les politiques pour les modèles éloquents.
1. Créez une classe de stratégie
La première étape consiste à générer une classe de politique. Laravel fournit une commande artisanale qui rend cela facile:
PHP Artisan Make: Policy Postpolicy --model = Post
Cela crée une classe PostPolicy
à l'intérieur du répertoire app/Policies
et le lie automatiquement au modèle Post
.
Si vous voulez une politique autonome (non liée à un modèle spécifique), omettez simplement l'option --model
.
Astuce: assurez-vous que le répertoire Policies
existe sous app
. Sinon, créez-le manuellement.
2. Enregistrer les politiques dans le fournisseur de services
Une fois créé, vous devez enregistrer votre politique afin que Laravel sache à quel modèle il appartient.
Ouvrez AppServiceProvider.php
(ou mieux encore, un fournisseur de services dédié comme AuthServiceProvider.php
) et ajouter le mappage à l'intérieur de la méthode boot()
:
Utilisez App \ Models \ Post; Utiliser App \ Policies \ PostPolicy; Politiques $ protégées = [ Post :: Class => Postpolicy :: Class, ]]
Cela indique à Laravel d'utiliser PostPolicy
lors de la vérification des autorisations pour le modèle Post
.
Important: n'oubliez pas d'importer à la fois le modèle et la politique en haut du fichier.
3. Définir les règles d'autorisation à l'intérieur de la politique
Chaque méthode de votre stratégie correspond à une action - comme view
, create
, update
ou delete
.
Voici à quoi pourrait ressembler un PostPolicy
de base:
Mise à jour de la fonction publique (utilisateur de l'utilisateur $, post $ post) { return $ user-> id === $ post-> user_id; }
Cela signifie que seul l'utilisateur qui possède le message peut le modifier.
Vous pouvez également définir une méthode before
dans votre politique de vérification mondiale - comme permettre aux administrateurs de faire quoi que ce soit avant que les règles individuelles ne soient évaluées.
4. Utilisez des politiques dans votre application
Maintenant que votre politique est configurée, vous pouvez vérifier les autorisations de plusieurs manières:
- Dans les contr?leurs (recommandés):
$ post = Post :: findorfail ($ id); $ this-> Authoriser ('mise à jour', $ post);
- En middleware:
Route :: put ('/ Posts / {post}', fonction (post $ post) { // logique ici }) -> middleware ('can: update, post');
- Dans les modèles de lame:
@can ('mise à jour', $ post) <froit> Modifier </fitton> @endcan
Ces méthodes gardent vos vues et contr?leurs propres tout en appliquant des règles d'accès cohérentes.
Notes finales
La configuration des politiques prend quelques étapes, mais une fois qu'ils sont en place, la gestion de l'autorisation devient beaucoup plus facile et évolutive. C'est particulièrement utile à mesure que votre application se développe et que vous avez plus de r?les et de conditions à gérer.
Assurez-vous de nommer clairement vos méthodes de politique et de conserver la logique connexe regroupée. N'oubliez pas non plus de tester différents r?les utilisateur pour vous assurer que vos règles se comportent comme prévu.
C'est essentiellement ?a. Pas trop mal une fois que vous avez compris.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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.

Clothoff.io
Dissolvant de vêtements AI

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

Article chaud

Outils chauds

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

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

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

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Cet article vous apporte des connaissances pertinentes sur Laravel. Il vous présente principalement l'implémentation du verrouillage optimiste dans le modèle Laravel Eloquent. Il existe des exemples de code. Les amis intéressés peuvent y jeter un ?il ci-dessous.

Points clés de la stratégie de prix et de la conception des promotions dans le système de vente flash PHP Dans un système de vente flash, la stratégie de prix et la conception des promotions sont des éléments très importants. Des stratégies de prix raisonnables et des promotions bien con?ues peuvent inciter les utilisateurs à participer à des activités de vente flash et améliorer l'expérience utilisateur et la rentabilité du système. Ce qui suit présentera en détail les points clés de la stratégie de prix et de la conception des activités promotionnelles dans le système de vente flash PHP, et fournira des exemples de code spécifiques. 1. Points clés dans la conception d’une stratégie de prix : Déterminer le prix de référence : Dans le système de vente flash, le prix de référence fait référence au prix du produit lorsqu’il est normalement vendu. exister

Développement Laravel : Comment utiliser LaravelEloquent pour implémenter des associations polymorphes ? L'association polymorphe est une fonctionnalité importante de Laravel Eloquent, qui permet à un modèle d'établir des relations avec plusieurs modèles différents. Dans les applications pratiques, le traitement de différents types de données est relativement simple et efficace, notamment dans la conception de bases de données. Dans cet article, nous verrons comment implémenter des associations polymorphes à l'aide de Laravel Eloquent. 1. Qu'est-ce qu'une association polymorphe ? Polymorphisme

Table des matières Principe de jalonnement d'Astar Dapp Revenus de jalonnement Démantèlement des projets potentiels de largage aérien?: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Stratégie et fonctionnement du jalonnement "AstarDapp Staking" a été mis à niveau vers la version V3 au début de cette année, et de nombreux ajustements ont été apportés aux revenus de jalonnement règles. à l'heure actuelle, le premier cycle de jalonnement est terminé et le sous-cycle de ? vote ? du deuxième cycle de jalonnement vient de commencer. Pour bénéficier des avantages ? récompense supplémentaire ?, vous devez franchir cette étape critique (qui devrait durer jusqu'au 26 juin, soit moins de 5 jours). Je vais détailler les revenus du staking Astar,

EXE vers PHP?: une stratégie efficace pour étendre les fonctions. Avec le développement d'Internet, de plus en plus d'applications ont commencé à migrer vers le Web pour obtenir un accès utilisateur plus large et des opérations plus pratiques. Dans ce processus, la demande de conversion de fonctions initialement exécutées sous forme de fichiers EXE (fichiers exécutables) en scripts PHP augmente également progressivement. Cet article explique comment convertir EXE en PHP pour réaliser une extension fonctionnelle et donne des exemples de code spécifiques. Pourquoi convertir EXE en PHP multiplateforme?: PHP est un langage multiplateforme

La conversion d'un tableau en objet à l'aide d'Eloquent dans Laravel nécessite les étapes suivantes : Créer un modèle Eloquent. Utilisez la méthode select d'Eloquent pour obtenir le résultat et le convertir en tableau. Utilisez ArrayObject pour convertir un tableau en objet. Obtient une propriété d'objet pour accéder aux valeurs d'un tableau.

Analyse de la stratégie de cache MyBatis : bonnes pratiques pour le cache de premier niveau et le cache de deuxième niveau Lors du développement avec MyBatis, nous devons souvent réfléchir au choix de la stratégie de cache. Le cache de MyBatis est principalement divisé en deux types : le cache de premier niveau et le cache de deuxième niveau. Le cache de premier niveau est un cache de niveau SqlSession, tandis que le cache de deuxième niveau est un cache de niveau Mapper. Dans les applications pratiques, l’utilisation rationnelle de ces deux caches constitue un moyen important pour améliorer les performances du système. Cet article utilisera des exemples de code spécifiques pour analyser un MyBatis

La stratégie de configuration de la sécurité des noms d'utilisateur PHPCMS révélée Dans le développement de sites Web, la sécurité des comptes d'utilisateurs a toujours été un aspect auquel les développeurs attachent une grande importance. Les paramètres de sécurité du nom d'utilisateur sont également cruciaux, car le nom d'utilisateur ne constitue pas seulement les informations de connexion de l'utilisateur, mais peut également exposer les informations personnelles de l'utilisateur et même entra?ner des risques de sécurité. Cet article révélera la stratégie de configuration de la sécurité du nom d'utilisateur dans PHPCMS et donnera des exemples de code spécifiques auxquels les développeurs pourront se référer. 1. Empêcher les noms d'utilisateur courants Afin d'améliorer la sécurité des noms d'utilisateur, les développeurs doivent empêcher les utilisateurs d'en utiliser de manière excessive.
