msieprawski / eloquent-photos by msieprawski

Photos for Laravel models
18
1
2
Package Data
Maintainer Username: msieprawski
Maintainer Contact: crom9153@gmail.com (Mateusz Sieprawski)
Package Create Date: 2017-02-25
Package Last Update: 2017-02-25
Language: PHP
License: MIT
Last Refreshed: 2024-11-22 15:04:34
Package Statistics
Total Downloads: 18
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 1
Total Watchers: 2
Total Forks: 0
Total Open Issues: 0

Eloquent Photos

About

This package has been created for everyone which has photos related to any eloquent models in projects.

Compatibility

Currently this package has been tested and developed for Laravel 5.3 or greater.

Installation

  1. composer require msieprawski/eloquent-photos
  2. Add package service provider in your config/app.php file: Msieprawski\EloquentPhotos\EloquentPhotosServiceProvider::class,
  3. Publish migrations and run php artisan migrate: php artisan vendor:publish --tag=migrations
  4. Add HasPhotos trait to your model: use Msieprawski\EloquentPhotos\HasPhotos
  5. Add protected property to your model with directory name where photos should be stored: protected $targetPhotosDirectory = 'users';

Usage

Add photos to your model

<?php namespace App;
$user = User::find(1);
$user->addPhoto('/path/to/your/photo.jpg');
$user->addPhotos([
    '/path/to/your/photo1.jpg',
    '/path/to/your/photo2.jpg',
]);

Add uploaded photos to your model

<?php namespace App;

$photos = request()->file('photos');
$user = User::find(1);
$user->addPhoto($photos);

It will automatically upload the photos and store it against user entity.

Get photos

<?php namespace App;
$user = User::find(1);
$photos = $user->photos;
foreach ($photos as $photo) {
    /** @var Msieprawski\EloquentPhotos\Photo $photo */
    echo $photo->photo_path;
}

Delete photos

<?php namespace App;
$user = User::find(1);
$user->destroyPhotos();

License

Licensed under the MIT License