outerweb / filament-layout-builder

此包扩展了filament构建器字段,以便与预定义的布局块一起工作,以构建页面的内容。

v1.6.0 2024-03-24 12:26 UTC

This package is auto-updated.

Last update: 2024-09-24 13:43:31 UTC


README

Latest Version on Packagist Total Downloads

此包扩展了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)。请参阅许可证文件了解更多信息。