query('search', ''); $search = is_string($searchInput) ? trim($searchInput) : ''; $query = Product::query(); if ($search !== '') { $query->where(function ($query) use ($search) { $query->where('name', 'like', '%'.$search.'%') ->orWhere('price', 'like', '%'.$search.'%'); }); } $products = $query->orderBy('id')->paginate(10)->withQueryString(); return view('products.index', compact('products', 'search')); } // TP4 : les six autres actions complètent le CRUD des produits. public function create() { return view('products.create'); } // TP6 : seules les données validées par le Form Request sont enregistrées. public function store(StoreProductRequest $request) { Product::create($request->validated()); return redirect()->route('products.index'); } public function show(Product $product) { return view('products.show', compact('product')); } public function edit(Product $product) { return view('products.edit', compact('product')); } public function update(UpdateProductRequest $request, Product $product) { $product->update($request->validated()); return redirect()->route('products.index'); } public function destroy(Product $product) { $product->delete(); return redirect()->route('products.index'); } }