outerweb / filament-layout-builder
此包扩展了filament构建器字段,以便与预定义的布局块一起工作,以构建页面的内容。
v1.6.0
2024-03-24 12:26 UTC
Requires
- php: ^8.0
- filament/filament: ^3.2
- laravel/framework: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.16
README
此包扩展了filament构建器字段,以便与预定义的布局块一起工作,以构建页面的内容。
安装
您可以通过composer安装此包
composer require outerweb/filament-layout-builder
将插件添加到您想要的Filament面板
use OuterWeb\FilamentLayoutBuilder\Filament\FilamentLayoutBuilder; class FilamentPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ FilamentLayoutBuilderPlugin::make(), ]); } }
使用方法
创建布局块
在app/View/Components/LayoutBuilder
目录中创建所有您的布局块。每个布局块都应该扩展Outerweb\FilamentLayoutBuilder\View\Components\Block
类。
namespace App\View\Components\LayoutBuilder; use Outerweb\FilamentLayoutBuilder\View\Components\Block; class Article extends Block { // ... }
定义视图
您可以通过设置$view
属性来定义要渲染的视图。
class Article extends Block { protected string $view = 'components.layout-builder.article'; }
定义Filament表单的字段
您可以通过向块中添加一个schema
方法来定义Filament表单的字段。
class Article extends Block { // ... public function schema(): array { return [ // ... ]; } }
格式化数据/从数据库获取数据
您可以在您的块上定义一个formatData
方法,在数据传递给视图之前对其进行格式化。这可以用于从数据库获取数据或在对视图传递数据之前对数据进行格式化。
class Article extends Block { // ... public function formatData(array $data): array { $data['images'] = Image::whereIn('id', $data['images'] ?? [])->get(); return $data; } }
使用make命令
您可以使用make:layout-builder-block
命令生成新的布局构建器块。
php artisan make:layout-builder-block Article
这将生成一个新布局构建器块在app/View/Components/LayoutBuilder
目录中: app/View/Components/LayoutBuilder/Article.php
。
以及在resources/views/components/layout-builder
目录中生成一个新的视图: resources/views/components/layout-builder/article.blade.php
。
变更日志
请参阅CHANGELOG了解最近更改的更多信息。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件了解更多信息。