PHP code example of melsaka / laravel-image-manager
1. Go to this page and download the library: Download melsaka/laravel-image-manager library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Melsaka\ImageManager\Traits\HasImages;
class User extends Model
{
use HasImages;
// Your model code...
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Melsaka\ImageManager\Traits\HasImages;
class User extends Model
{
use HasImages;
protected $with = ['images'];
// Your model code...
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Melsaka\ImageManager\Traits\HasImages;
class Product extends Model
{
use HasImages;
// No configuration needed! 'default' type is ready to use
}
// Store a single image
$user = User::find(1);
$image = $user->storeImage($uploadedFile);
$image = $user->storeImage($uploadedFile, 'avatar');
// Store multiple images
$images = $user->storeImages($uploadedFiles, 'gallery');
// Store or update (replaces existing image of same type)
$image = $user->storeOrUpdateImage($uploadedFile, 'avatar');
// get array of all image urls
$image->getUrls();
$avatars = $user->getImages();
// Get all images of a specific type
$avatars = $user->getImages('avatar');
// Get a single image
$avatar = $user->getImage('avatar');
// Get image URLs
$urls = $user->getImageUrls('avatar');
// Returns: ['name' => 'filename.webp', 'original' => 'url', 'small' => 'url', 'medium' => 'url']
// Get specific size URL
$thumbnailUrl = $user->getImageUrl('small', 'avatar');
// Auto-detects (convenient for single models)
$product->getImages('gallery');
// Explicit (forces fresh query even if loaded)
$product->getImages('gallery', false);
// Explicit (forces using loaded data, avoids N+1)
foreach ($products as $product) {
$product->getImages('gallery', true); // Clear intention
}
// Delete single image by type
$user->deleteImage('avatar');
// Delete all images of a type
$user->deleteImagesOfType('gallery');
// Delete all images
$user->deleteAllImages();
// Replace all images of a type
$user->replaceImages($newFiles, 'gallery');
// Sync images (update existing, add new, remove extra)
$user->syncImages($files, 'gallery');
// Update image by ID
$user->updateImageById($uploadedFile, $imageId);
// Eager load all user images
User::with('images')->get();
// load user images
$user->load('images');
class ClientResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'name' => $this->name,
// more code ...
'image' => $this->when($this->relationLoaded('images'), $this->getImageUrls()),
];
}
}