如何在 Laravel 包中使用角色

How to use roles in a Laravel package

我想在我正在创建的包中拥有角色。执行此操作的最佳方法是什么?

我应该使用现有的包(Entrust、Bouncer 等)还是应该实现一个没有依赖性的角色功能?

如果现有包已安装在另一个版本中,或者另一个包已被使用,则使用现有包可能会导致冲突。

在没有依赖的情况下实现功能就像重新发明轮子...

实际上,最好的方法可能是不在包中定义角色或实施任何类型的授权,让用户在他们的应用程序中定义策略。

如果用户愿意,可以使用 artisan vendor:publish 命令提供和发布默认策略。

模型应该使用 Gate 来检查用户 view/create/delete/etc 的能力。