public function store(Request $request) { $this->validate($request, [ 'name' => 'required|max:60', 'description' => 'required|max:60', 'status' => 'required|string', 'category_id' => 'required|exists:categories,id', 'size.*' => 'required|string', 'image.*' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', ]); $product = new Product(); $product->name = $request->name; $product->description = $request->description; $product->status = $request->status; $product->category_id = $request->category_id; $product->save(); $sizes = $request->size; foreach ($sizes as $size) { ProductSize::create([ 'size' => $size, 'product_id' => $product->id, ]); } $images = $request->file('image'); foreach ($images as $files) { $imageName = $product->category->name . '/' . time() . '-' . $files->getClientOriginalName(); $files->storeAs('public/categories/', $imageName); ProductImage::create([ 'image' => $imageName, 'product_id' => $product->id ]); } return redirect()->route('home')->with('status', 'Image Has been uploaded'); }