luttje/filament-user-attributes

让您的用户指定模型的自定义属性。

0.8.2 2024-04-25 04:53 UTC

This package is auto-updated.

Last update: 2024-09-08 17:00:56 UTC


README

Filament User Attributes

警告

此包仍在开发中。它尚未准备好投入生产使用,API 可能随时更改。

Tests Coverage Status Fix PHP Code Styling

Filament 用户属性

让您的用户为 Filament 中的模型指定自定义属性,类似于 WordPress 中的自定义字段。

演示:展示为该应用 '位置' 资源创建自定义用户属性的过程

demonstration.mp4

在这个演示中

  1. 添加了一个复选框,并指定了它在表格和表单中的顺序。
  2. 复选框在表格和表单中显示。现在,用户可以切换复选框并查看表中的值。

注意

这是一个与 Filament 或 Laravel 无关的第三方包。

🚀 开始使用

  1. 确保您的项目符合以下要求

    • PHP 8.1 或更高版本
    • Livewire 3.0.3 或更高版本
    • Filament 3.0 或更高版本
    • 支持 JSON 列的数据库,例如
      • MySQL 5.7.8 或更高版本
      • PostgreSQL 9.2 或更高版本
      • SQLite 3.38 或更高版本
  2. 通过 composer 安装包

    composer require luttje/filament-user-attributes
  3. 运行以下命令以完全安装包

    php artisan filament-user-attributes:install

    这会发布迁移以创建两个必需的表并运行它们。

  4. 运行向导命令以帮助您设置项目代码

    php artisan filament-user-attributes:wizard

    向导将帮助您

    • 指定应具有自定义用户属性的模型
    • 设置一个模型,该模型可以配置每个用户的用户属性(例如,一个用户或租户模型)
    • 设置配置模型可以配置自定义属性的资源

    最后,您需要在某处显示用户属性配置表单。这样,用户就可以实际配置其资源的自定义属性。

  5. 创建一个资源并从 UserAttributeConfigResource 类继承

    // app/Filament/Resources/UserAttributeConfigResource.php
    namespace App\Filament\Resources;
    
    use Luttje\FilamentUserAttributes\Filament\Resources\UserAttributeConfigResource as BaseUserAttributeConfigResource;
    
    class UserAttributeConfigResource extends BaseUserAttributeConfigResource
    {
        protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
    }

    或者,您可以从头创建自己的资源。查看 源代码 以获取灵感。

🎉 就这些了,现在您和您的用户可以配置自定义属性了!

您的用户(或租户)现在可以配置自定义属性字段

配置的自定义属性将(可选地)添加到资源表单和表中

✏ 自定义

  • 要修改翻译,发布翻译文件

    php artisan vendor:publish --tag=filament-user-attributes-translations
  • 要修改配置,发布配置文件

    php artisan vendor:publish --tag=filament-user-attributes-config

✨ 特性

  • 向任何模型添加自定义属性
  • 支持 UUIDs
  • 支持 ULIDs
  • 轻松在 Filament 表单中显示属性
  • 轻松在 Filament 表格中显示属性
  • 对输入类型进行合理的验证
  • 允许用户指定属性的顺序
    • 在表单中
    • 在表格中
  • 允许用户隐藏属性
    • 在表单中
    • 在表格中
  • 用户可以为属性指定默认值
  • 用户可以指定属性是否为必填项
  • 用户可以指定属性是否从另一个属性继承值,即使是从相关模型继承
    • 对于资源
    • 对于实现静态 ::getModel() 方法的 Livewire 组件
    • 对于表单中的具有 {relation}_id 字段的关联字段
    • 对于本表单中没有字段的关联属性
  • 用户属性管理用户界面
  • 支持表单中的标签页和部分
  • 向导命令帮助您设置项目代码

支持的输入类型

  • 文本
  • 多行文本框
  • 数字
    • 整数
    • 小数
    • 特定范围
    • 特定小数位数
  • 选择
    • 特定选项
    • 从现有模型属性中选择
  • 单选按钮
    • 特定选项
    • 从现有模型属性中选择
  • 标签
    • 带建议
  • 日期
    • 日期
    • 时间
    • 日期和时间
  • 复选框
    • 带默认值
  • 切换
    • 带默认值
  • 文件
    • 图片
    • PDF
    • 其他
    • 预览
  • 颜色

💖 贡献

有关如何为该项目做出贡献的详细信息,请参阅CONTRIBUTING。您还可以找到有关如何运行测试的说明。