A package for attachment files to models
- Run the command below to add this package:
composer require laravelir/attachmentable - Open your config/attachmentable.php and add the following to the providers array:
Laravelir\Attachmentable\Providers\AttachmentableServiceProvider::class,- Run the command below to install package:
php artisan attachmentable:install - Run the command below to migrate database:
php artisan migrate 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; }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(); } }