Package Data | |
---|---|
Maintainer Username: | 6reduk |
Maintainer Contact: | mridul@sahusoft.com (Mrigank) |
Package Create Date: | 2016-05-10 |
Package Last Update: | 2016-05-10 |
Language: | PHP |
License: | Sahu Soft India Private Limited |
Last Refreshed: | 2024-12-15 15:24:14 |
Package Statistics | |
---|---|
Total Downloads: | 55 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 1 |
Total Watchers: | 1 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Relating an image with a model is always a pain. Eloquent Image Mutator provides an easy mutator for Eloquent models to save and retrieve images.
Upload using a form
$user->profile_picture = \Input::file('image');
$user->save();
OR
Upload using a public URL (We will download and store the image for you)
$user->profile_picture = https://scontent.fbom1-2.fna.fbcdn.net/hprofile-xaf1/v/t1.0-1/p160x160/11659393_10207093577848521_887484828555984342_n.jpg?oh=089042c5f4afa05e0dcbde51130c0eea&oe=56689CB9;
$user->save();
OR
Copy already present Image Object
$user->profile_picture = $user->photo_one;
$user->save();
note:-
The $user->photo_one
should be a added to
protected $image_fields
And its model should
use EloquentImageMutatorTrait;
$user->profile_picture->thumbnail->url
$user->profile_picture->xsmall->url
$user->profile_picture->small->url
$user->profile_picture->profile->url
$user->profile_picture->medium->url
$user->profile_picture->large->url
$user->profile_picture->original->url
You can even access the height and width
$user->profile_picture->large->height
$user->profile_picture->large->width
Eg (In blade file):-
<img src="{{ $user->profile_picture->profile->url }}" />
If you update a field with a new image the old image is deleted from the system.
OR
If you delete a record from a the table the image is deleted.
Add the following line to the require
section of composer.json
:
{
"require": {
"sahusoftcom/eloquent-image-mutator": "dev-master"
}
}
/config/app.php
, add the following to providers
:SahusoftCom\EloquentImageMutator\EloquentImageMutatorProvider::class,
Run php artisan vendor:publish
.
In /config/image.php
, you will have the default target folder.
storage/app/uploads
If you want to use this detination as the upload folder, Do make the directories required i.e., storage/app/uploads
.
In public folder you should have a soft-link pointing to the upload folder destination named uploads
. You could do this by creating a soft link in public.Go to your projects public folder and
ln -s relative-path-to-destination-folder uploads
text
.EloquentImageMutatorTrait
in the Model.For example:
```
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use SahusoftCom\EloquentImageMutator\EloquentImageMutatorTrait;
class User extends Model
{
use EloquentImageMutatorTrait;
/**
* The photo fields should be listed here.
*
* @var array
*/
protected $image_fields = ['profile_picture', 'cover_photo'];
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['profile_picture', 'cover_photo'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [];
.
.
.
}
```
And to then with the user object you can just use it like a property
Example:
Storing images with Model
$user->profile_picture = \Input::file('image');
$user->save();
Retrieving images with Model
$user->profile_picture->thumbnail->url
$user->profile_picture->xsmall->url
$user->profile_picture->small->url
$user->profile_picture->profile->url
$user->profile_picture->medium->url
$user->profile_picture->large->url
$user->profile_picture->original->url
Thanks!
You could customize the target folder where the images are stored. For customizing goto config/image.php
. Line no 6
'assets_upload_path' => 'storage/app/uploads',
and change the destination to your desired folder. Make sure the destination folder has all the permissions and the soft link in the public folder is pointing to the destionation folder.
====================================================
Relating an image with a model is always a pain. Eloquent Image Mutator provides an easy mutator for Eloquent models to save and retrieve images.
$user->profile_picture = \Input::file('image');
$user->save();
$user->profile_picture->thumbnail
$user->profile_picture->xsmall
$user->profile_picture->small
$user->profile_picture->profile
$user->profile_picture->medium
$user->profile_picture->large
Eg (In blade file):-
<img src="{{ $user->profile_picture->profile }}" />
Add the following line to the require
section of composer.json
:
{
"require": {
"sahusoftcom/eloquent-image-mutator": "dev-master"
}
}
/config/app.php
, add the following to providers
:SahusoftCom\EloquentImageMutator\EloquentImageMutatorProvider::class,
Run php artisan vendor:publish
.
In /config/image.php
, you will have the default target folder.
storage/app/uploads
If you want to use this detination as the upload folder, Do make the directories required i.e., storage/app/uploads
.
In public folder you should have a soft-link pointing to the upload folder destination named uploads
. You could do this by creating a soft link in public.Go to your projects public folder and
ln -s relative-path-to-destination-folder uploads
text
.EloquentImageMutatorTrait
in the Model.For example:
```
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use SahusoftCom\EloquentImageMutator\EloquentImageMutatorTrait;
class User extends Model
{
use EloquentImageMutatorTrait;
/**
* The photo fields should be listed here.
*
* @var array
*/
protected $image_fields = ['profile_picture', 'cover_photo'];
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'image';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['profile_picture', 'cover_photo'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [];
.
.
.
}
```
And to then with the user object you can just use it like a property
Example:
Storing images with Model
$user->profile_picture = \Input::file('image');
$user->save();
Retrieving images with Model
$user->profile_picture->thumbnail
$user->profile_picture->xsmall
$user->profile_picture->small
$user->profile_picture->profile
$user->profile_picture->medium
$user->profile_picture->large
Thanks!
You could customize the target folder where the images are stored. For customizing goto config/image.php
. Line no 6
'assets_upload_path' => 'storage/app/uploads',
and change the destination to your desired folder. Make sure the destination folder has all the permissions and the soft link in the public folder is pointing to the destionation folder.