Untitled
unknown
plain_text
2 months ago
4.1 kB
8
Indexable
<?php namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; use App\Models\Product; use Illuminate\Http\Request; class ProductController extends Controller { /** * Display a listing of the resource. */ public function index(Request $request) { $products = Product::with('category')->when($request->status, function($query)use($request){ $query->where('status', 'like',"%{$request->status}%"); })->orderBy('favorite', 'desc')->get(); return response()->json([ 'status' => 'success', 'data' => $products ], 200); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $request->validate([ 'category_id' => 'required', 'name' => 'required', 'price' => 'required', // 'image' => 'required', 'criteria' => 'required', // 'favorite' => 'required', // 'status' => 'required', // 'stock' => 'required', ]); $product = new Product; $product->category_id = $request->category_id; $product->name = $request->name; $product->description = ''; $product->price = $request->price; $product->favorite = false; $product->status = 'published'; $product->stock = 0; $product->save(); // upload image if ($request->file('image')) { $image = $request->file('image'); $image->storeAs('public/products', $product->id . '.png'); $product->image = $product->id . 'png'; $product->save(); } // product with category $product = Product::with('category')->find($product->id); return response()->json(['status' => 'success', 'data' => $product], 200); } /** * Display the specified resource. */ public function show(string $id) { $product = Product::find($id); if (!$product) { return response()->json(['status' => 'error', 'message' => 'Product not found'], 404); } return response()->json(['status' => 'success', 'data' => $product], 200); } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { $product = Product::find($id); if (!$product) { return response()->json(['status' => 'error', 'message' => 'Product not found'], 404); } // dd($product); $product->category_id = $request->category_id; $product->name = $request->name; // $product->description = $request->description; $product->price = $request->price; $product->criteria = $request->criteria; // $product->favorite = $request->favorite; // $product->status = $request->status; $product->stock = 0; $product->save(); // // upload image // if ($request->file('image')) { // $image = $request->file('image'); // $image->storeAs('public/products', $product->id . '.png'); // $product->image = $product->id . 'png'; // $product->save(); // } // product with category $product = Product::with('category')->find($product->id); return response()->json(['status' => 'success', 'data' => $product], 200); } /** * Remove the specified resource from storage. */ public function destroy(string $id) { $product = Product::find($id); if (!$product) { return response()->json(['status' => 'error', 'message' => 'Product not found'], 404); } $product->delete(); return response()->json(['status' => 'success', 'message' => 'Product deleted'], 200); } }
Editor is loading...
Leave a Comment