Я создал следующую 4 модель и структуру ее таблицы для моего проекта:
Media.php Для загрузки изображений в приложение
Структура таблицы Medias
id |путь
Пример пути: uploads / images / media / food-1542110154.jpg
Post.php Создатьpost
Структура таблицы сообщений
id |название |содержимое
FeaturedImage.php Рекомендуемое изображение для сообщения
Структура таблицы сообщений
id |post_id |путь
Пост-модель и модель 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
.
Но я получаю ** Не могу записать данные изображения в путь ** ошибка.
Я был бы очень благодарен, если бы кто-нибудь мог указать на ошибки, которые я сделал.
Пожалуйста, не отмечайте это как дублирующийся контент.Поскольку я просмотрел почти все сообщения, связанные с такого рода ошибками, и они мне не помогли.