Filament Spatie Roles Permissions 项目教程
1. 项目的目录结构及介绍
目录结构
filament-spatie-roles-permissions/
├── app/
│ ├── Console/
│ ├── Exceptions/
│ ├── Filament/
│ ├── Http/
│ ├── Models/
│ ├── Providers/
│ └── ...
├── bootstrap/
├── config/
├── database/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
├── .env
├── artisan
├── composer.json
├── package.json
└── ...
目录介绍
app/
: 包含应用程序的核心代码,如模型、控制器、服务提供者等。Models/
: 包含用户模型和其他相关模型。Providers/
: 包含服务提供者,如AdminPanelProvider
。
bootstrap/
: 包含启动框架的文件。config/
: 包含应用程序的配置文件。database/
: 包含数据库迁移和种子文件。public/
: 包含公共资源,如index.php
和前端资源。resources/
: 包含视图、语言文件和其他资源。routes/
: 包含路由定义。storage/
: 包含应用程序生成的文件,如日志和缓存。tests/
: 包含测试文件。.env
: 环境配置文件。artisan
: Laravel 命令行工具。composer.json
: Composer 依赖管理文件。package.json
: Node.js 依赖管理文件。
2. 项目的启动文件介绍
启动文件
bootstrap/app.php
: 这是 Laravel 应用程序的入口文件,负责创建应用程序实例并加载服务提供者。
服务提供者
app/Providers/AdminPanelProvider.php
: 这个文件定义了管理面板的配置,包括启用注册功能等。
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->registration(); // 启用注册功能
}
}
3. 项目的配置文件介绍
配置文件
config/app.php
: 包含应用程序的基本配置,如时区、语言、服务提供者等。config/filament.php
: 包含 Filament 管理面板的配置。config/permission.php
: 包含 Spatie 权限包的配置。
配置示例
config/app.php
:
return [
'timezone' => 'UTC',
'locale' => 'en',
'providers' => [
// 其他服务提供者
App\Providers\AdminPanelProvider::class,
],
];
config/permission.php
:
return [
'models' => [
'permission' => Spatie\Permission\Models\Permission::class,
'role' => Spatie\Permission\Models\Role::class,
],
'table_names' => [
'roles' => 'roles',
'permissions' => 'permissions',
'model_has_permissions' => 'model_has_permissions',
'model_has_roles' => 'model_has_roles',
'role_has_permissions' => 'role_has_permissions',
],
];
通过这些配置文件,可以灵活地调整应用程序的行为和功能。