zeeshantariq/filament-attachmate

Implement a polymorphic morphMany relationship for managing attachments within Filament
9,527 22
Install
composer require zeeshantariq/filament-attachmate
Latest Version:v1.2.0
Maintainer: zeeshantariq08

Filament Attachmate

Latest Version on Packagist Total Downloads License

This package provides attachment management using a polymorphic morphMany relationship within Filament. The system allows for the seamless association of attachments with various models, enabling flexible and efficient handling of file attachments across your application.

Filament Attachmate

Installation

You can install the package via composer:

composer require zeeshantariq/filament-attachmate

Filament version compatibility

Use the package version that matches your Filament major version:

  • Filament v3: ^1.1 (e.g. v1.1.1)
  • Filament v4: ^1.2 (starting from v1.2.0)
  • Filament v5: ^1.2 (starting from v1.2.0)

Examples:

# Filament v3
composer require zeeshantariq/filament-attachmate:^1.1

# Filament v4 or v5
composer require zeeshantariq/filament-attachmate:^1.2

The package comes with publishable assets:

Migrations

php artisan vendor:publish --tag="filament-attachmate-migrations"

Configuration

  1. Create your model
php artisan make:model MyModel
  1. Configure your model to handle morphMany attachments
use ZeeshanTariq\FilamentAttachmate\Core\InteractsWithAttachments;
// ...

class MyModel extends Model
{
    use InteractsWithAttachments;
    
    // ...
}
  1. Configure the Filament resource
  • In your form Filament resource declaration you need to add AttachmentFileUpload::make() so your users can upload the attachments.
use ZeeshanTariq\FilamentAttachmate\Forms\Components\AttachmentFileUpload;

public static function form(Form $form): Form
{
    return $form
        ->schema([
            // ...

            AttachmentFileUpload::make(),
        ]);
}
  1. Configure the Filament resource The last configuration needed, is to add HandleAttachmets trait to the CreateRecord components of your model

CreateRecord component

use ZeeshanTariq\FilamentAttachmate\Core\HandleAttachments;

class CreateMyModel extends CreateRecord
{
    use HandleAttachments;

    // ...
}
  1. Configure the Filament resource The last configuration needed, is to add HandleAttachmets trait to the EditRecord components of your model

EditRecord component

use ZeeshanTariq\FilamentAttachmate\Core\HandleAttachments;

class EditMyModel extends EditRecord
{
    use HandleAttachments;

    // ...
}

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.