gpt4 book ai didi

php - 更新存储 laravel 的图像路径

转载 作者:行者123 更新时间:2023-12-04 17:49:44 24 4
gpt4 key购买 nike

我正在使用 Laravel 5.4,我有一个注册方法,可以将图像存储在项目的公共(public)文件夹中,然后将它的路径存储到数据库的项目行中,目前它正在运行:

 public function salvar(Request $request){

if ($request->hasFile('image')){

$product = new Product();
$id = Produto::max('id')+1;

$file = request()->file('image');
$directoryImg = $file->storeAs('images/'. $id , 'image.jpg');

$produto->description= $request->description;
$produto->cathegory = $request->cathegory;
$produto->price = $request->price;
$produto->image = $directoryImg;
$produto->save();
}
else{
$product = new Product();
$product = $product->create($request->all());
}

\Session::flash('mensage_success', 'Done!');
return Redirect::to('products/new');
}

问题是,当我使用另一种方法更新项目注册时,我更改的所有信息都进入了数据库,除了没有存储在路径中的图像和数据库中的路径本身。该字段保留方法执行前的值:

public function update($id, Request $request){
$productEdit = Product::find($id);

if ($request->hasFile('image')){

$file = request()->file('image');
$directoryImg = $file->storeAs('images/' . $productEdit->id , 'image.jpg');

$productEdit->image = $directoryImg;
$productEdit->description = $request->description;
$productEdit->cathegory = $request->cathegory;
$productEdit->price = $request->price;

$productEdit->save();

}
}

return Redirect::to('products/');

有人可以帮我找到我在这里缺少的东西吗?

最佳答案

它通常会保持值不变,不是吗?因为 ID 保持不变,这意味着图像路径将保持不变,因为图像名称是 ID+image.jpg

并尝试在更新之前删除旧图像:

File::delete(public_path('images/' . $productEdit->id , 'image.jpg'));

关于php - 更新存储 laravel 的图像路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46057162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com