我有两个相关的表,其中一个是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">
答案 0 :(得分:0)
错误在$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对象,并且表中没有照片列,因此 $ image->照片始终为空。相反,我认为您打算遍历$image->ProductsPhoto
并获得$each->filename
。
但是我必须说,您的代码库中有很多错误,我建议您真正调试一下:
在其他人中。