pratikkuikel / panini
Panini 是一个基于 filamentphp 和 wasabi json 的 cms
Requires
- php: ^8.1
- filament/filament: ^3.0
- filament/spatie-laravel-settings-plugin: ^3.1
- filament/spatie-laravel-translatable-plugin: ^3.1
- illuminate/contracts: ^10.0
- pratikkuikel/wasabi: ^1.1
- spatie/laravel-package-tools: ^1.15.0
- touhidurabir/laravel-stub-generator: ^1.0
Requires (Dev)
- larastan/larastan: ^2.8.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is auto-updated.
Last update: 2024-09-08 09:42:56 UTC
README
这不是由 AI 生成并在 AI 的帮助下再次放大和压缩的标志。
Panini 是一个 FilamentPHP 包,专为那些希望在没有预定义结构限制的情况下自由构建自己的 CMS 的开发者设计。它不是一个 CMS;它是一个工具包,可以生成 Filament 资源——控制器、工厂、迁移、种子器和模型。亮点是页面管理器,允许您动态生成具有可定制表单字段的页面。拥抱前端独立性,创建您独特的定制内容管理体验,这一切都是为您项目的特定需求量身定制的。因为有时候,最好的 CMS 就是您自己构建的。
说实话,我不知道我建了什么,但它确实解决了我的问题,如果它也能解决你的问题,那就太棒了!😈
为什么叫 panini 呢?
也许因为它是一块三明治,你可以按你喜欢的方式建造它。
够了这种独白!让我们开始吧
在你开始之前,请确保你已经安装了带有默认 AdminPanelProvider 的 Filamentphp。
此包假定 AdminPanelProvider 是默认的。
现在你可以通过 composer 安装此包
确保你在 composer.json 中将最小稳定性设置为 dev
"minimum-stability": "dev"
composer require pratikkuikel/panini
使用以下命令发布和运行迁移
php artisan vendor:publish --tag="panini-migrations"
php artisan migrate
将 Panini 插件添加到 AdminPanelProvider。
use Pratikkuikel\Panini\PaniniPlugin; return $panel ... ->plugin(new PaniniPlugin()) ...
要启用页面自动发现,更改
->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages')
TO
->discoverPages(in: app_path('Filament/Admin/Pages'), for: 'App\\Filament\\Admin\\Pages')
登录到您的 Admin Panel。
这就是你的原始 panini。
烤它,厨师 👨🍳
用法
⭐使用资源生成器生成资源
⭐页面管理器
使用页面管理器
页面管理器目前支持两个字段,选择和文本输入。请随时添加更多。
属性是您链接到所选输入字段的函数。支持多个属性。
可以将多个字段添加到页面中,只需要点击 将字段添加到页面
按钮。
在创建页面管理器后,点击 生成
按钮。
您可以自定义生成的页面,在 app\Filament\Admin\Pages
目录中找到页面,在 resources\views\filament\admin\pages
目录中找到视图文件。
生成的字段可以下载、重用或共享。
以下是一个示例 Json 字段
[ { "type": "Pratikkuikel\\Panini\\Filament\\Fields\\PaniniTextInput", "name": "name", "label": "name", "attributes": { "required": "true" } }, { "type": "Pratikkuikel\\Panini\\Filament\\Fields\\PaniniSelect", "name": "option", "label": "Option", "attributes": { "required": "true" } } ]
获取页面数据
您可以使用以下方法获取数据
$data = PageManager::where('name','leslie-winkle')->first();
在这里,wasabi 将您的页面数据字段转换为属性。您可以使用 ✅ 访问它们
$data->name
而不是 ❌
$data->data['name'];
如果需要查询页面数据,请使用 Json Where Clauses
$data = PageManager::where('data->name','robot')->get();
测试
请原谅我,TDD 军队!目前没有测试,至少现在还没有。我会完成的,对吧?
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请查看我们的安全策略了解如何报告安全漏洞。
致谢
许可协议
MIT 许可协议(MIT)。请参阅许可文件获取更多信息。