victorscatolon/filament-attachment-library
Composer 安装命令:
composer require victorscatolon/filament-attachment-library
包简介
Easily manage file attachments across multiple models using a clean, polymorphic approach in your Filament app.
关键字:
README 文档
README
Filament Attachment Library is a Laravel package that enables a polymorphic morphMany relationship to handle file attachments across multiple Eloquent models. Seamlessly integrated with Filament, it offers a clean, reusable, and consistent approach to managing file uploads through Filament resource forms and tables—making attachment handling simple and scalable across your application.
🚀 Installation
Install the package via Composer:
composer require victorscatolon/filament-attachment-library
Then publish the package's migration files:
php artisan vendor:publish --tag="filament-attachment-library-migrations"
⚙️ Configuration
- Create your model If you haven’t already, create a new Eloquent model:
php artisan make:model MyModel
- Enable attachments on your model
Add the
InteractsWithAttachmentstrait to your model to define the polymorphic relationship:
use VictorScatolon\FilamentAttachmentLibrary\Core\InteractsWithAttachments; class MyModel extends Model { use InteractsWithAttachments; }
- Add the file upload field to your Filament form
In your Filament resource's
formmethod, include theAttachmentLibraryFileUploadcomponent to allow users to upload files:
use VictorScatolon\FilamentAttachmentLibrary\Forms\Components\AttachmentLibraryFileUpload; public static function form(Form $form): Form { return $form ->schema([ AttachmentLibraryFileUpload::make(), ]); }
- Enable attachment handling in the CreateRecord component
To ensure attachments are saved properly when creating a new model, use the
HandleAttachmentstrait in yourCreateRecordclass:
CreateRecord component
use VictorScatolon\FilamentAttachmentLibrary\Core\HandleAttachments; class CreateMyModel extends CreateRecord { use HandleAttachments; }
- Enable attachment handling in the EditRecord component Likewise, use the HandleAttachments trait in your EditRecord class to manage attachments during updates:
EditRecord component
use VictorScatolon\FilamentAttachmentLibrary\Core\HandleAttachments; class EditMyModel extends EditRecord { use HandleAttachments; }
🗂️ Relation Managers
To use the Attachment Library within a Relation Manager form, follow these steps:
- Use the HandleAttachments trait
Add the
HandleAttachmentstrait to yourRelationManagerclass:
use VictorScatolon\FilamentAttachmentLibrary\Core\HandleAttachments; class MyRelationManager extends RelationManager { use HandleAttachments; }
- Set
dehydrated(true)on the file upload field Make sure the attachment field is dehydrated so that the file data is available during form processing:
public function form(Form $form): Form { return $form ->schema([ AttachmentFileUpload::make()->dehydrated(true), ]); }
- Add a custom create action to the table
You’ll need to define a custom
CreateActionwith anafter()callback to manually handle the attachments after the record is created:
public function table(Table $table): Table { return $table->headerActions([ Tables\Actions\CreateAction::make() ->after(function ($record, $data) { $attachments = $data['attachments']; $this->handleAttachments($record, $attachments); }), ]); }
✅ Note: Make sure the field name in the $data array matches the field key used in the AttachmentLibraryFileUpload::make() definition.
📦 Changelog
For a detailed list of recent changes, updates, and improvements, please refer to the Changelog.
🤝 Contributing
Contributions are welcome! To get started, please read the Contribution Guide.
👨💻 Credits
Developed and maintained by @victorscatolon.
Thanks to all the amazing contributors who help improve this package.
📄 License
This project is open-source software licensed under the MIT License.
victorscatolon/filament-attachment-library 适用场景与选型建议
victorscatolon/filament-attachment-library 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 110 次下载、GitHub Stars 达 7, 最近一次更新时间为 2025 年 04 月 11 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「media」 「library」 「laravel」 「attachment」 「file upload」 「polymorphic」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 victorscatolon/filament-attachment-library 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 victorscatolon/filament-attachment-library 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 victorscatolon/filament-attachment-library 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Simple Sharing generates social media share links within CP entry pages, allowing you to quickly & easily share entries.
Inbox pattern process implementation for your Laravel Applications
Laravel Media Popup to upload/view the files
Core library that defines common interfaces used by the rest of the intahwebz..
Asset Manager Laravel package for Gigcodes UI Library
Amqp classes
统计信息
- 总下载量: 110
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 7
- 点击次数: 16
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-11