applySearch($request->all()) ->filterType($request->travel_type_id) ->sort($request->sort) ->latest() ->paginate(2); return view('admin.tours.index', compact('tours')); } public function create() { return view('admin.tours.create' ); } public function store(TourStoreRequest $request) { DB::beginTransaction(); try { $data = $request->validated(); if ($request->departure_date) { $data['departure_date'] = Verta::parse( $request->departure_date )->formatGregorian('Y-m-d'); } if ($request->hasFile('image')) { $data['image'] = $request ->file('image') ->store('tours','public'); } $data['created_by'] = auth('admin')->id(); $tour = Tour::create($data); ActivityLog::create([ 'admin_id' => auth('admin')->id(), 'action' => 'create', 'model' => 'Tour', 'model_id' => $tour->id, 'description' => 'ثبت تور جدید', ]); DB::commit(); return redirect() ->route('admin.tours.index') ->with('success','تور ثبت شد'); } catch(\Exception $e) { DB::rollBack(); dd($e->getMessage()); } } public function edit(Tour $tour) { return view('admin.tours.edit',compact('tour')); } public function update(TourStoreRequest $request, Tour $tour) { DB::beginTransaction(); try { $data = $request->validated(); if ($request->departure_date) { $data['departure_date'] = Verta::parse( $request->departure_date )->formatGregorian('Y-m-d'); } if ($request->hasFile('image')) { if($tour->image){ Storage::disk('public') ->delete($tour->image); } $data['image'] = $request ->file('image') ->store('tours','public'); } $data['updated_by'] = auth('admin')->id(); $tour->update($data); ActivityLog::create([ 'admin_id' => auth('admin')->id(), 'action' => 'update', 'model' => 'Tour', 'model_id' => $tour->id, 'description' => 'ویرایش تور', ]); DB::commit(); return redirect() ->route('admin.tours.index') ->with('success','تور ویرایش شد'); }catch(\Exception $e){ DB::rollBack(); dd($e->getMessage()); } } public function destroy(Tour $tour) { if($tour->image){ Storage::disk('public') ->delete($tour->image); } ActivityLog::create([ 'admin_id' => auth('admin')->id(), 'action' => 'delete', 'model' => 'Tour', 'model_id' => $tour->id, 'description' => 'حذف تور', ]); $tour->delete(); return back() ->with('success','تور حذف شد'); } }