第1部分Laravel5.4或更高版本安装此包。如果您使用的是旧版本的Laravel,请查看此软件包的v1分支。第1步:通过composer安装包:composerrequirespatie/laravel-permission(可选)在Laravel5.5中,服务提供者将自动注册。在旧版本的框架中,只需在config/app.php文件中添加服务提供者:[//othercodeSpatie\Permission\PermissionServiceProvider::class,];第二步:发布迁移phpartisanvendor:publish--provider="SpatiePermissionPermissionServiceProvider"--tag="migrations"迁移发布成功后,运行迁移创建角色和权限表:phpartisanmigrate第四步:发布配置文件:phpartisanvendor:publish--provider="SpatiePermissionPermissionServiceProvider"--tag="config"发布时,config/permission.php配置文件包含:[/**在这个包属性中使用"HasRoles",我们需要知道您的权限应该*使用哪个Eloquent模型。*当然,通常只是“Permission”模型,你可以使用任何你喜欢的模型。**您使用的权限模型必须实现*`Spatie\Permission\Contracts\Permission`契约。*/'permission'=>Spatie\Permission\Models\Permission::class,/**当使用这个包中的“HasRoles”特征时,*我们需要知道应该使用哪个Eloquent模型来检索你的角色。*当然,通常只是“Role”模型,你可以随意使用。**您使用的权限模型必须实现*`Spatie\Permission\Contracts\Role`契约。*/'role'=>Spatie\Permission\Models\Role::class,],'table_names'=>[/**当使用这个包中的“HasRoles”特性时,*我们需要知道应该使用哪个表检索您的“角色”。*我们选择了基本默认值,但您可以根据自己的喜好轻松更改它。*/'roles'=>'roles',/**当使用这个包中的“HasRoles”功能时,*我们需要知道应该使用哪个表来检索您的权限。*我们选择了基本默认值,但您可以轻松地将其更改为您喜欢的任何表格。*/'permissions'=>'permissions',/***当使用这个包中的“HasRoles”特征时,*我们需要知道应该使用哪个表来检索您的“模型权限”。*我们选择了基本默认值,但您可以轻松地将其更改为您喜欢的任何表格。**/'model_has_permissions'=>'model_has_permissions',/**当使用这个包中的“HasRoles”特性时,*我们需要知道应该使用哪个表来检索你的“模型角色”。*我们选择了基本默认值,但您可以轻松地将其更改为您喜欢的任何表格。*/'model_has_roles'=>'model_has_roles',/**当使用这个包中的“HasRoles”功能时,*我们需要知道应该使用哪个表来检索您的“角色权限”。*我们选择了基本默认值,但您可以轻松地将其更改为您喜欢的任何表格。*/'role_has_permissions'=>'role_has_permissions',],/**默认情况下,所有权限都会缓存24小时,除非更新权限或更新角色会立即刷新缓存。*/'cache_expiration_time'=>60*24,/**当设置为true时,需要的权限/角色名称(permission/role)将被添加到异常消息中。*在某些情况下,这可能被认为是信息泄露,*所以为了最好的安全性,默认为false。*/'display_permission_in_exception'=>false,];第2部分从第5步开始。将SpatiePermissionTraitsHasRoles特征添加到您的用户模型:`\Spatie\Permission\Middlewares\RoleMiddleware::class,'permission'=>\Spatie\Permission\Middlewares\PermissionMiddleware::class,];使用中间件规则保护你的路由:['role:super-admin']],function(){//routecode});Route::group(['middleware'=>['permission:publisharticles']],function(){//路由代码});Route::group(['middleware'=>['role:super-admin','permission:publisharticles']],function(){//路由代码});路由案例['role:edit']],function($route){$route->get('/api/user','UserController@show');});
