LaravelPackages.net
Acme Inc.
Toggle sidebar
laravelir/attachmentable

A package for attachment files to models

29
4
0.2.5
About laravelir/attachmentable

laravelir/attachmentable is a Laravel package for a package for attachment files to models. It currently has 4 GitHub stars and 29 downloads on Packagist (latest version 0.2.5). Install it with composer require laravelir/attachmentable. Discover more Laravel packages by laravelir or browse all Laravel packages to compare alternatives.

Last updated

  • Starts
  • Forks

Laravel attachmentable package

A package for attachment files to models

Installation

  1. Run the command below to add this package:
composer require laravelir/attachmentable
  1. Open your config/attachmentable.php and add the following to the providers array:
Laravelir\Attachmentable\Providers\AttachmentableServiceProvider::class,
  1. Run the command below to install package:
php artisan attachmentable:install
  1. Run the command below to migrate database:
php artisan migrate

Uses

First add Attachmentable trait to models that you want have attachments


namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Laravelir\Attachmentable\Traits\Attachmentable;

class Post extends Model
{
    use HasFactory,
        Attachmentable;
}

and add Attachmentorable trait to User models


namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Laravelir\Attachmentable\Traits\Attachmentorable;

class User extends Model
{
    use HasFactory,
        Attachmentorable;
}

Methods

in controllers, with Attachmentable trait you have these methods:


namespace App\Http\Controllers;

use App\Models\Post;

class PostController extends Controller
{
    public function index()
    {
        $file = request()->file('thumbnail');
        
        $post = Post::find(1);

        $post->attach($file, "posts/thumbnails");

        $post->attachments // return all attachments

        $post->attachment($id); // return attachment 
               
        $post->detach($id);
        
        $post->clearAttachments();
       
    }
}

Comments