awcodes/filament-table-repeater

修改版的 Filament Forms Repeater,以表格形式显示。


README

Latest Version on Packagist Total Downloads

table repeater opengraph image

2.x 到 3.x 的升级指南

  1. 将你使用的 Awcodes\FilamentTableRepeater 重命名为 Awcodes\TableRepeater
  2. 运行 npm run build 来更新你的主题文件。
  3. 查看 标题 了解对 headers() 方法的更改。

安装

您可以通过 composer 安装此包

composer require awcodes/filament-table-repeater

为了与 Filament 的主题方法保持一致,您需要使用自定义主题来使用此插件。

重要

如果您尚未设置自定义主题并且正在使用面板,请首先参考 Filament 文档 中的说明。以下适用于 Panels 包和独立的 Forms 包。

  1. 将插件的样式表导入到您的主题的 css 文件中。
@import '<path-to-vendor>/awcodes/filament-table-repeater/resources/css/plugin.css';
  1. 将插件的视图添加到您的 tailwind.config.js 文件中。
content: [
    '<path-to-vendor>/awcodes/filament-table-repeater/resources/**/*.blade.php',
]

用法

此字段具有与 Filament Forms Repeater 字段大部分相同的功能。主要区别是此字段不能折叠。

use Awcodes\TableRepeater\Components\TableRepeater;
use Awcodes\TableRepeater\Header;

TableRepeater::make('users')
     ->headers([
        Header::make('name')->width('150px'),
    ])
    ->schema([
        ...
    ])
    ->columnSpan('full')

标题

要添加标题,请使用 headers() 方法,并传入一个包含 Header 组件的数组。

use Awcodes\TableRepeater\Header;

TableRepeater::make('users')
    ->headers([
        Header::make('name'),
        Header::make('email'),
    ])

标题对齐

要使表格标题对齐,请使用 align() 方法,传入 Filament 对齐枚举之一。

use Filament\Support\Enums\Alignment;

Header::make('name')
    ->align(Alignment::Center)

标题宽度

要设置表格标题的宽度,请使用 width() 方法。

Header::make('name')
    ->width('150px')

标记列为必需

要标记列为必需,请使用 markAsRequired() 方法。

Header::make('name')
    ->markAsRequired()

隐藏标题

即使您不想显示标题,也应在无障碍性标准下添加它们。您可以通过 renderHeader() 方法隐藏标题。

TableRepeater::make('users')
    ->headers(...)
    ->renderHeader(false)

标签

默认情况下,表单组件标签将设置为隐藏。要显示它们,请使用 showLabels() 方法。

TableRepeater::make('users')
    ->showLabels()

空状态标签

要自定义表格为空时显示的文本,请使用 emptyLabel() 方法。

TableRepeater::make('users')
    ->emptyLabel('There are no users registered.')

或者,您可以使用 emptyLabel(false) 隐藏空标签。

断点

在特定的断点以下,表格将以一组面板的形式渲染,以便在移动设备上更容易处理数据。默认为 'md',但可以用 stackAt() 方法覆盖。

use Filament\Support\Enums\MaxWidth;

TableRepeater::make('users')
    ->stackAt(MaxWidth::Medium)

外观

如果您希望字段更内联于表格,您可以更改表格的外观,使用 streamlined() 方法。

TableRepeater::make('users')
    ->streamlined()

额外操作

TableRepeater 支持与本地 Filament 重复器相同的 extraItemActions()。您还可以使用 extraActions() 方法在表格下方添加额外操作。这些操作将出现在“添加”按钮旁边或替代“添加”按钮(如果已隐藏)。

TableRepeater::make('users')
    ->extraActions([
        Action::make('exportData')
            ->icon('heroicon-m-inbox-arrow-down')
            ->action(function (TableRepeater $component): void {
                Notification::make('export_data')
                    ->success()
                    ->title('Data exported.')
                    ->send();
            }),
    ])

变更日志

请参阅 CHANGELOG 以获取有关最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

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

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件