map(function ($item) { return [ "id" => $item->id, "title" => $item->title, "type" => $item->type, "image_url" => $item->image_url ? asset(Storage::url($item->image_url)) : null, ]; }); return Inertia::render("dashboard/products/index", ['product' => $productResponse]); } public function productAdd() { return Inertia::render("dashboard/products/add"); } public function productAddPost(Request $request) { $validated = $request->validate([ "title" => "required|string", "type" => "required|string", "image_url" => "file" ]); if ($request->hasFile('image_url')) { $path = $request->file('image_url')->store('product', 'public'); $product = Product::create([ 'title' => $validated['title'], "type" => $validated['type'], 'image_url' => $path ]); $productResponse = [ "title" => $product->title, "type" => $product->type, "image_url" => $product->image_url ? asset(Storage::url($product->image_url)) : null, ]; return to_route('dashboard.product.index', $productResponse); } return response()->json([ 'status' => 'error', 'message' => 'File upload failed', ], 400); } }