我为我的项目创建了以下4个模型及其表结构:
Media.php 在app中上传图片
媒体表结构
id | path
路径示例:uploads / images / media / food-1542110154.jpg
Post.php 创建帖子
帖子表结构
id | title | content
FeaturedImage.php 特色图片发布
帖子表结构
id | post_id| path
Post model和FeaturedImage模型是一对一的关系
UploadImage.php 调整上传图像的大小并将其移动到另一个目录 . 此模型没有迁移和控制器
来自 PostsController.php
的代码片段来创建帖子
use App\UploadImage;
use App\Media;
class PostController extends Controller
{
private $imagePath= "uploads/images/post/";
public function store(Request $request)
{
$post = new Post;
$post->title = $request->title;
$post->content = $request->content;
$post->save();
$media = Media::find($request->featured);
if (!File::exists($this->imagePath)) {
File::makeDirectory($this->imagePath);
}
$upload = new UploadImage;
$image= $upload->uploadSingle($this->banner, $media->path, 400,300);
$post->image()->save(new FeaturedImage([
'path' => $image
]));
}
Session::flash('success', 'Post created sucessfully !');
return redirect()->route('post.index');
}
来自 UploadImage.php
的代码片段
use Intervention\Image\Facades\Image;
use Spatie\LaravelImageOptimizer\Facades\ImageOptimizer;
use Illuminate\Database\Eloquent\Model;
class UploadImage extends Model
{
public function uploadSingle($savePath, $image,$width,$height)
{
Image::make(public_path($image))->fit($width, $height)->save($savePath);
ImageOptimizer::optimize($savePath);
return $savePath;
}
}
在我的Laravel应用程序中,我正在尝试使用 UploadImage.php
中编写的方法编辑已上载图像的尺寸,并将编辑后的图像保存在 post
目录中,并将其路径保存在 featured_images
表中 .
但我一直在** 无法将图像数据写入路径错误 .
如果有人能指出我所犯的错误,我将非常感激 .
请不要将此标记为重复内容 . 因为我已经完成了与这种错误相关的几乎所有帖子,他们对我没有任何帮助 .
1 回答
在我的UploadImage.php模型中调整了几行并得到了解决 .