laraxot/panel-modules

filamentphp 中对 nwidart/laravel-modules 的支持

dev-main 2024-06-24 15:09 UTC

README

Tests Styling Laravel v9.x Filament v3.x PHP 8.1 Packagist

模块是 FilamentPHP 插件,旨在轻松集成 nwidart/laravel-modules

注意:这些文档是为 v3 版本准备的,它仅支持 Filament 3。如果您正在使用 Filament v2,请参阅此处文档以开始。

例如,如果您有两个模块(博客Pos),您应该能够在每个模块中安装 filament,并使用以下不同的资源

  • 目录 Modules/Blog/Filament 应该使您能够通过 http://yoururl/blog/admin 访问管理面板
  • 目录 Modules/Pos/Filament 应该使您能够通过 http://yoururl/pos/admin 访问管理面板
  • 我们甚至可以在 Modules/Pos/Filament2 下有另一个上下文,这将使您能够通过 http://yoururl/pos/admin2 或您为该上下文配置的任何路径访问管理面板。

上述每个目录都应该有自己的独特的 页面、资源小部件。它们在模块的配置文件夹下也都有一个配置,允许您为每个上下文自定义许多参数,例如 path。此外,每个这些都可以有自己的定制登录页面,该页面将重定向回模块。

您可以在这里了解更多关于 Filament 多上下文的信息。

如果这是您的目标,那么您就在正确的位置。

安装

在您继续之前,本指南假定您已经完全配置了您的应用程序以与 Laravel Modules 一起工作。如果您还没有,请在继续之前先遵循 Laravel Modules 文档

要求

  1. Filament >= 3
  2. PHP >= 8.1
  3. Laravel >= 9.0
  4. Livewire >= 3.0
  5. nwidart/laravel-modules >=10.0

例如,如果您有两个模块(博客Pos),您应该能够在每个模块中安装 filament,并使用以下不同的资源

  • 目录 Modules/Blog/Filament 应该使您能够通过 http://yoururl/blog/admin 访问管理面板
  • 目录 Modules/Pos/Filament 应该使您能够通过 http://yoururl/pos/admin 访问管理面板
  • 我们甚至可以在 Modules/Pos/Filament2 下有另一个上下文,这将使您能够通过 http://yoururl/pos/admin2 或您为该上下文配置的任何路径访问管理面板。

上述每个目录都应该有自己的独特的 页面、资源小部件。它们在模块的配置文件夹下也都有一个配置,允许您为每个上下文自定义许多参数,例如 path。此外,每个这些都可以有自己的定制登录页面,该页面将重定向回模块。

您可以在这里了解更多关于 Filament 多上下文的信息。

如果这是您的目标,那么您就在正确的位置。

安装

在您继续之前,本指南假定您已经完全配置了您的应用程序以与 Laravel Modules 一起工作。如果您还没有,请在继续之前先遵循 Laravel Modules 文档

composer require laraxot/panel-modules

用法

在本指南中,我们将使用 博客模块 作为示例

创建您的 Laravel 模块

如果您要工作的模块不存在,请使用 nwidart/laravel-modules 创建它

php artisan module:make Blog # Create the blog module

在您的模块内生成一个新的面板

php artisan module:make-filament-panel admin Blog # php artisan module:make-filament-panel [id] [module]

如果未传递任何两个参数,则命令将交互式地请求它们。在本例中,如果传递的 Panel ID 是 admin 且模块是 blog,则命令将生成一个 ID 为 blog::admin 的面板。此 ID 应用于下一步生成资源、页面和小部件时。在此步骤中,使用命令交互式地生成资源、页面和小部件。

如往常一样生成您的资源、页面和小部件,选择您刚才创建的上面的面板。

从现在起,像平常一样使用 filament 生成 resourcesPagesWidgets。请确保指定之前生成的 ID 的 --panel 选项。如果未传递 --panel 选项,则命令将交互式地请求它。

# For each of these commands, the package will ask for the Model and Panel.
php artisan make:filament-resource
php artisan make:filament-page
php artisan make:filament-widget
# The Model and Panel arguments are passed inline
php artisan make:filament-resource Author blog::admin
php artisan make:filament-page Library blog::admin
php artisan make:filament-widget BookStats blog::admin

全部完成! 对于生成的每个面板,您都可以通过 module-path/panel-path 导航到您的面板,例如 blog/admin 以访问面板和资源以及页面的链接。

测试

composer test

更新日志

请参阅变更日志获取关于最近更改的更多信息。

贡献

请参阅贡献指南获取详细信息。

安全漏洞

请查看我们的安全策略了解如何报告安全漏洞。

鸣谢

许可

MIT 许可证 (MIT)。请参阅许可文件获取更多信息。