Bonjour à tous, je suis coincé dans le processus d'apprentissage de la politique de Laravel. Je connais la différence entre la politique de Laravel et le middleware, mais je ne sais toujours pas comment appliquer la politique. Le modérateur peut-il fournir un petit programme complet ? beaucoup,
Il s'agit d'une réponse image sur la politique que j'ai trouvée sur stackoverflow, http://stackoverflow.com/ques...
Ensuite, c'est le code que j'ai stocké sur github lorsque je m'entraînais. Si quelqu'un est prêt à ajouter la fonction de politique à mon code, je serais très reconnaissant. Vous pouvez utiliser la politique pour n'importe quelle fonction, à condition d'y ajouter la politique
https://github.com/GoogleYY/s...
Policy
etGate
peuvent être utilisés ensemble, ce n'est pas compliqué.Policy
est enregistré dans AuthServiceProvider. Si vous enregistrez unAccountPolicy::class => Account::class
, cela signifie si l'User
actuel a autorisations. Ajouter, supprimer, modifier et vérifier leModèle
duCompte
.Policy
和Gate
结合起来使用就行,不复杂。Policy
的注册在AuthServiceProvider里,如注册一个AccountPolicy::class => Account::class
,就表示当前User
是否有权限对Account
这个Model
进行增删改查。在
AccountPolicy
针对增删改查操作写上授权逻辑,如针对Delete
操作写上$user->id === $account->user_id
授权逻辑。如何触发这个授权逻辑呢?可以使用
Model Event
触发,如在EventServiceProvider::boot()
里
DansGate与Policy的关系类似于Route与Controller的关系。
AccountPolicy
, écrivez la logique d'autorisation pour les opérations d'ajout, de suppression, de modification et de vérification, telles que$user->id === $account-> code> opération. user_id
Logique d'autorisation. 🎜 🎜Comment déclencher cette logique d'autorisation ? Il peut être déclenché à l'aide deModel Event
, comme dansEventServiceProvider::boot()
🎜 rrreee 🎜La relation entre Gate et Policy est similaire à la relation entre Route et Controller.
🎜Après l'aide par e-mail du maître étranger du stackoverflow Amit Gupta, le problème est maintenant résolu.
Étape 1 : Enregistrez d'abord la stratégie et établissez la relation de connexion entre le modèle et la stratégie dans AuthServiceProvider.php sous le dossier Providers, comme suit :
La deuxième étape consiste à créer une nouvelle PermissionPolicy via la commande php artisan make:policy et à écrire le contrôle d'autorisation approprié dans les deux politiques via des fonctions, comme indiqué ci-dessous :
La dernière étape consiste à utiliser les fonctions associées définies par cette politique dans le contrôleur, comme suit :