sashsvamir / laravel-user-crud
Laravel 的用户模型 CRUD 实现
dev-master
2022-03-27 07:16 UTC
This package is auto-updated.
Last update: 2024-08-27 12:36:25 UTC
README
此扩展改进了用户模型,添加了控制台命令和页面(CRUD)来管理用户。
设置
发布并运行迁移以更新 users
表
artisan vendor:publish --tag=user-crud-migrations artisan migrate
注意:将添加以下列:roles, notify, notify-spam
如果您之前已重命名用户表,可以在配置中设置新名称,但首先必须发布 config/user-crud.php
配置
artisan vendor:publish --tag=user-crud-config
... 并设置新用户表名称
return [ 'users_table' => 'newname', ];
接下来,将特质 UserNotifyTrait
、UserRolesTrait
和实现 HasRolesInterface
添加到 App\Model\User
class Model implements HasRolesInterface { use UserNotifyTrait, UserRolesTrait; ... }
您还可以定义自己的角色
class Model implements HasRolesInterface { const ROLE_MANAGER = 'manager'; public static function getAvailableRoles(): array { return [ self::ROLE_ADMIN, self::ROLE_MODERATOR, self::ROLE_MANAGER, ]; } }
命令
现在,您可以使用以下 artisan 命令来管理用户
artisan user:add artisan user:change-password artisan user:list artisan user:notify artisan user:notify-spam artisan user:remove artisan user:role-add artisan user:role-remove
权限/角色
现在任何用户都可以拥有以下角色:admin
和 moderator
您可以检查用户是否具有上述权限(例如,在 blade 视图中)
@can('role-admin') @can('role-moderator')
还将添加 edit-users
权限,该权限已应用于所有具有 admin
角色的用户。要检查这一点,请使用以下方法
@can('user-edit')
路由
警告:以下部分仅与特定的 blade 组件(尚未发布)兼容,并使用 bootstrap5 样式。
扩展添加了页面路由来管理用户(CRUD),您可以通过 URL /admin/user
访问
https://:8080/admin/user
注意:默认情况下,所有 /admin/user/*
网络路由都使用 auth
和 can:edit-users
中间件。
要将用户 CRUD 链接到您的管理员模板中,请添加以下内容(bootstrap5 风格)
@can('edit-users') <li class="nav-item"> <a href="{{ route('admin.user.index') }}" class="nav-link {{ (request()->routeIs('admin.user.*')) ? 'active' : '' }}">Users</a> </li> @endcan
覆盖 blade 模板
要发布 blade 视图文件,请运行
artisan vendor:publish --tag=user-crud-views