Skip to content

laravelir/attachmentable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Oct 21, 2023
efe5b2b · Oct 21, 2023

History

26 Commits
Feb 12, 2022
Apr 11, 2023
Apr 11, 2023
Oct 21, 2023
Aug 24, 2021
Aug 23, 2021
Aug 24, 2021
Apr 11, 2023
Apr 11, 2023
Apr 11, 2023
Aug 23, 2021

Repository files navigation

  • 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();
       
    }
}