raiika / laravel-single-image
该包最新版本(dev-master)没有提供许可信息。
在Laravel模型上轻松进行图像操作
dev-master
2019-09-26 02:41 UTC
Requires
- php: >=7.0.0
- intervention/image: ^2.4
- laravel/framework: ~5.2.0||~5.3.0||~5.4.0||~5.5.0||~5.6.0||~5.7.0||~5.8.0
Requires (Dev)
- phpunit/phpunit: 6.0.*|8.0.*
This package is not auto-updated.
Last update: 2024-09-21 00:24:28 UTC
README
该特性是Intervention Image的依赖
目标与名称相同,仅支持在模型上使用单个图像
在控制器中
基本使用如下
$model = new Model();
$model->image = $request->image;
if ($needsCropping) {
$model->cropper = $request->only('x', 'y', 'w', 'h');
$model->cropper = [0,0,500,500]; // [x,y,w,h]
}
if ($manualSave) $model->saveImage();
$model->save(); // trigger auto image saving
$model->delete(); // trigger auto image deleting
在模型中
这些都是可用的配置
protected $singleImage = [
'dir' => $this->defaultDir(),
'dimensions' => [
'default' => [
'w' => 500,
'h' => 500,
'upsize' => true,
'aspectRatio' => false,
],
'medium' => [
'w' => 500,
'h' => null,
'upsize' => true,
'aspectRatio' => false,
]
'anything' => [
'w' => 500,
'h' => 500,
'upsize' => true,
'aspectRatio' => false,
]
],
// if wants single dimension use below for readability
'dimension' => [
'w' => 500,
'h' => 500,
'upsize' => true,
'aspectRatio' => false,
],
'column' => 'image',
'strict' => false,
'disablePlaceholder' => false
]
删除图像
在控制器中
//by default, the trait will delete the image on model delete
$model->delete();
//if you wants to delete manually all image
$model->deleteImage();
//delete only small and medium image
$model->deleteImage('small', 'medium');
在查询构建器中实现单个或多个删除
Model::whereNotNull('deleted_at')->deleteImages();
实现单个图像
protected $singleImage = [
'dimension' => [
'w' => 500,
'h' => 500,
'upsize' => true,
'aspectRatio' => false,
],
];
实现多个图像尺寸(用于缩略图)
默认值是必须的(当你不指定想要使用的文件夹时会被调用)或者你可以设置在键 ['dimension'] 如上单个图像,它将自动移动到 ['dimensions']['default']
protected $singleImage = [
'dimensions' => [
'default' => [
'w' => 500,
'h' => 500,
'upsize' => true,
'aspectRatio' => false,
],
'medium' => [
'w' => 500,
'h' => null,
'upsize' => true,
'aspectRatio' => false,
],
'small' => [
'w' => 500,
'h' => null,
'upsize' => true,
'aspectRatio' => false,
],
'up-to-you' => [
'w' => 500,
'h' => null,
'upsize' => true,
'aspectRatio' => false,
],
],
];
boot
这是特性的boot,它在模型保存时删除旧图像并保存新图像,并在模型被删除时删除旧图像
static::saving(function($model){
$model->deleteImage();
$model->saveImage();
});
static::deleting(function($model){
$model->deleteImage();
});