behzadsp / eloquent-dynamic-photos
一个用于轻松处理和管理照片存储的 Laravel Eloquent 特性。
v1.4.2
2024-06-18 05:51 UTC
Requires
- php: >=7.4
- ext-gd: *
- illuminate/database: ^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/filesystem: ^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^7.0|^8.0|^9.0|^10.0|^11.0
- intervention/image: ^2.7
- nesbot/carbon: ^2.53
README
这是一个 Laravel Eloquent 特性,提供了一种简单且动态的方式来管理 Eloquent 模型中的照片。
安装
您可以通过 composer 安装此包
composer require behzadsp/eloquent-dynamic-photos
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Behzadsp\EloquentDynamicPhotos\Providers\EloquentDynamicPhotosServiceProvider"
这是上传图片的全局配置内容。
<?php return [ 'disk' => 'public', // Disk to use for storing photos 'root_directory' => 'images', // Root directory for photos 'name_attribute' => 'slug', // Model attribute used for file name 'quality' => 50, // Quality for encoding the photos 'format' => 'webp', // Format of the stored photos 'slug_limit' => 240, // Name limit to save in database 'timestamp_format' => 'U', // U represents Unix timestamp ];
使用方法
安装包后,只需在 Eloquent 模型中使用 HasPhotos
特性即可
use Behzadsp\EloquentDynamicPhotos\Traits\HasPhotos; class YourModel extends Model { use HasPhotos; // ... }
当然,您可以通过声明相应的方法在单个模型中覆盖某些配置。如下所示
class User extends Model { use HasPhotos; protected function eloquentPhotoDisk() { return 'user-avatar'; } protected function eloquentPhotoFormat() { return 'png'; } protected function eloquentPhotoRootDirectory() { return 'images'; } protected function eloquentPhotoQuality() { return '50'; } protected function eloquentPhotoNameAttribute() { return 'slug'; } protected function eloquentPhotoSlugLimit() { return '240'; } protected function eloquentPhotoTimestampFormat() { return 'U'; } }
现在您可以在模型中使用该特性提供的方法
$model = YourModel::first(); // delete photo file only and not database column. $model->deletePhotoFile('photo_field'); // update photo file and save it to database column. $model->updatePhoto($photo, 'photo_field'); // get full photo path $model->getPhotoFullPath('photo_path'); // get photo directory path $model->getPhotoDirectoryPath(); // get photo URL $model->photo_field_url;
测试
composer test
许可
MIT 许可证 (MIT)。请参阅 许可文件 获取更多信息。