php - 多张图片更新 laravel
问题描述
我有两张相关的表格,一张是一张products
桌子,另一张是一张products_photos
桌子。表中products_photos
有id
和product_id
列filename
。我在编辑产品时尝试编辑多个图像。我得到的错误是
方法
Illuminate\Http\Request::photos
不存在。
如何一次编辑多个图像?
这就是我创建多个图像的方式:
public function store(Request $request)
{
foreach ($request->photos as $photo) {
$filename = $photo->store('public/photos');
ProductsPhoto::create([
'product_id' => $product->id,
'filename' => $filename
]);
}
return redirect()->back();
}
这就是我编辑多个图像的方式:
$image = Product::with('ProductsPhoto')
->where('id', $request->product_id)
->first();
if($request->photos('photos')) {
if(file_exists($image ->photos)){
unlink($image ->photos);
}
$filename = $photos->store('public/photos');
ProductsPhoto::create([
'product_id' => $product->id,
'filename' => $filename
]);
} else {
$image = $photos->store('public/photos');
}
$product = Product::with('ProductsPhoto')
->find($request->product_id);
$product->filename = $product->ProductsPhoto[0]->filename;
$product->save();
刀片模板:
<input multiple="multiple" name="photos[]" type="file">
解决方案
错误在$request->photos('photos')
. 请求类没有“照片”方法。
我想你想做:
if($request->hasFile('photos')) {}
或者
if($request->has('photos')) {}
另外,从您的代码段中:
$image = Product::with('ProductsPhoto')->where('id',$request->product_id)->first();
...
if(file_exists($image ->photos)){
unlink($image ->photos);
}
变量 $image 是一个 Product 对象,并且您的表中没有photos列,因此$image->photos将始终为空。相反,我认为您的意思是循环$image->ProductsPhoto
并获取$each->filename
.
但我必须说,你的代码库中有很多错误我建议你真正调试它:
- 您没有遍历更新中的多个文件
- 您是否尝试替换所有以前的图像(如果以前和现在有 3 个图像,我发送两个,您是否希望 3 个消失并替换为新的两个?)。因为那也不是很清楚。
在其他人中。
推荐阅读
- applescript - Applescript-based Droplet does not take all files dropped on
- javascript - 具有显式表的 Prisma 查询嵌套列表
- excel - String in a formula in excel VBA
- python - How do I remove the blanks in the middle of the data frame and delete the repeated header row?
- javascript - Problem getting datum to pass correctly on drag in d3 v7
- r - 通过 for 循环在某些变量上自动化 as.factor 函数
- python - UnitTest for Django Inline Formset
- python - Python:检查列表元素是否是文件路径的一部分
- python-3.x - Pytorch 数据管道
- python - Python cannot get data from column in dataframe