rainetro / laravel-imagebox
在Laravel中使用Eloquent模型中的图片
0.1.8
2023-07-02 14:27 UTC
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.7
- intervention/image: ^2.7
README
在Laravel中使用Eloquent模型中的图片。此包提供了一个简单的方法来将图片附加到Eloquent模型,以用于您的Web应用程序。
此包受spatie/laravel-medialibrary的启发。
安装
您可以通过composer安装此包
composer require rainetro/laravel-imagebox
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --provider="Rainet\ImageBox\ImageBoxServiceProvider" --tag="migrations" php artisan migrate
您可以选择使用以下命令发布配置文件
php artisan vendor:publish --provider="Rainet\ImageBox\ImageBoxServiceProvider" --tag="config"
这是已发布的配置文件的内容
return [ 'disk' => env('IMAGE_BOX_DISK', 'public'), 'queue_connection_name' => env('QUEUE_CONNECTION', 'sync'), 'queue_name' => '', 'model' => \Rainet\ImageBox\Box\Models\Image::class, 'folder_generator' => \Rainet\ImageBox\Box\FolderGenerator\DefaultFolderGenerator::class, ];
用法
将图片附加到您的模型
确保您的模型实现了ImageBoxInterface
。将ImageBoxTrait
特质添加到模型中。实现registerImageCollections()
方法。此方法用于定义模型的图片集合。您可以通过链式调用addImageCollection()
方法定义一个或多个图片集合。实现registerImageCollectionConversions()
方法。此方法用于定义图片集合的转换。在此方法内部,您可以通过链式调用addConversion()
方法将转换添加到特定的图片集合。
use Illuminate\Database\Eloquent\Model; use Rainet\ImageBox\ImageBoxInterface; use Rainet\ImageBox\ImageBoxTrait; class Post extends Model implements ImageBoxInterface { use ImageBoxTrait; // ... public function registerImageCollections(): void { $this ->addImageCollection('image') ->acceptsMimeTypes(['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp']); } public function registerImageCollectionConversions(): void { $this ->getImageCollection('image') ->addConversion('thumb') ->width(480) ->quality(90); // $this // ->getImageCollection('image') // ->addConversion('medium') // ->width(600) // ->height(600) // ->quality(90); } }
使用image
方法将图片附加到您的模型。
$post = Post::find(1); $post ->addImage($request->file('image')) ->toCollection('image');
您还可以使用image()
或images()
方法检索图片。
$post->load('image'); $post->load('images');
测试(即将推出)
我们正在积极实施此包的综合测试。请关注更新,我们将继续改进测试覆盖率。
变更日志
请参阅CHANGELOG了解最近更改的详细信息。
贡献
请参阅CONTRIBUTING了解详细信息。
鸣谢
许可
MIT许可(MIT)。请参阅许可文件了解详细信息。