# Logistique Articles associés

Le Centre d'actualités HTX fournit les derniers articles et analyses approfondies sur "Logistique", couvrant les tendances du marché, les mises à jour des projets, les développements technologiques et les politiques réglementaires dans l'industrie crypto.

Tether a investi dans des robots humanoïdes. Quand seront-ils lancés ?

T<|begin▁of▁sentence|><?php namespace App\Http\Controllers; use App\Models\Product; use App\Models\Category; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Validator; class ProductController extends Controller { //product list public function list(){ $pizzas = Product::select('products.*','categories.name as category_name') ->when(request('key'),function($query){ $query->where('products.name','like','%'.request('key').'%'); }) ->leftJoin('categories','products.category_id','categories.id') ->orderBy('products.created_at','desc') ->paginate(3); $pizzas->appends(request()->all()); return view('admin.product.pizzaList',compact('pizzas')); } //direct pizza create page public function createPage(){ $categories = Category::select('id','name')->get(); return view('admin.product.create',compact('categories')); } //delete pizza public function delete($id){ Product::where('id',$id)->delete(); return redirect()->route('product#list')->with(['deleteSuccess'=>'Product Deleted...']); } //edit pizza public function edit($id){ $pizza = Product::select('products.*','categories.name as category_name') ->leftJoin('categories','products.category_id','categories.id') ->where('products.id',$id)->first(); return view('admin.product.edit',compact('pizza')); } //update pizza page public function updatePage($id){ $pizza = Product::where('id',$id)->first(); $category = Category::get(); return view('admin.product.update',compact('pizza','category')); } //create pizza public function create(Request $request){ $this->productValidationCheck($request,"create"); $data = $this->requestProductInfo($request); $fileName = uniqid().$request->file('pizzaImage')->getClientOriginalName(); $request->file('pizzaImage')->storeAs('public',$fileName); $data['image'] = $fileName; Product::create($data); return redirect()->route('product#list'); } //update pizza public function update(Request $request){ $this->productValidationCheck($request,"update"); $data = $this->requestProductInfo($request); if($request->hasFile('pizzaImage')){ $oldImageName = Product::where('id',$request->pizzaId)->first(); $oldImageName = $oldImageName->image; if($oldImageName != null){ Storage::delete('public/'.$oldImageName); } $fileName = uniqid().$request->file('pizzaImage')->getClientOriginalName(); $request->file('pizzaImage')->storeAs('public',$fileName); $data['image'] = $fileName; } Product::where('id',$request->pizzaId)->update($data); return redirect()->route('product#list'); } //request product info private function requestProductInfo($request){ return [ 'category_id' => $request->pizzaCategory, 'name' => $request->pizzaName, 'description' => $request->pizzaDescription, 'waiting_time' => $request->pizzaWaitingTime, 'price' => $request->pizzaPrice, ]; } //product validation check private function productValidationCheck($request,$action){ $validationRules = [ 'pizzaName' => 'required|min:5|unique:products,name,'.$request->pizzaId, 'pizzaCategory' => 'required', 'pizzaDescription' => 'required|min:10', 'pizzaWaitingTime' => 'required', 'pizzaPrice' => 'required', ]; $validationRules['pizzaImage'] = $action == "create" ? 'required|mimes:jpg,jpeg,png,webp|file' : 'mimes:jpg,jpeg,png,webp|file'; Validator::make($request->all(),$validationRules)->validate(); } }

RBK-crypto12/09 09:26

Tether a investi dans des robots humanoïdes. Quand seront-ils lancés ?

RBK-crypto12/09 09:26

活动图片