alexkb/nova-permission

Laravel Nova工具,用于Spatie的权限库。

2.1.1 2019-11-03 14:08 UTC

README

Latest Version on Packagist Total Downloads

screenshot 1 screenshot 2 screenshot 3

安装

您可以通过composer将此包安装到使用Nova的Laravel应用中

composer require vyuldashev/nova-permission

请参阅安装部分来设置laravel-permission

接下来,您需要在Nova中注册该工具。这通常在NovaServiceProvidertools方法中完成。

// in app/Providers/NovaServiceProvider.php

// ...

public function tools()
{
    return [
        // ...
        \Vyuldashev\NovaPermission\NovaPermissionTool::make(),
    ];
}

接下来,将中间件添加到config/nova.php

// in config/nova.php
'middleware' => [
    // ...
    \Vyuldashev\NovaPermission\ForgetCachedPermissions::class,
],

最后,将MorphToMany字段添加到您的app/Nova/User资源中

// ...
use Laravel\Nova\Fields\MorphToMany;

public function fields(Request $request)
{
    return [
        // ...
        MorphToMany::make('Roles', 'roles', \Vyuldashev\NovaPermission\Role::class),
        MorphToMany::make('Permissions', 'permissions', \Vyuldashev\NovaPermission\Permission::class),
    ];
}

自定义

如果您想使用自定义资源类,可以在注册工具时定义它们

// in app/Providers/NovaServiceProvider.php

// ...

public function tools()
{
    return [
        // ...
        \Vyuldashev\NovaPermission\NovaPermissionTool::make()
            ->roleResource(CustomRole::class)
            ->permissionResource(CustomPermission::class),
    ];
}

用法

安装此包后,在您的Nova应用中会出现一个名为“权限 & 角色”的新菜单项。