fix: update tour management

This commit is contained in:
2026-08-17 19:53:12 +03:30
parent 81d2aa1acb
commit 123b43fb38
7 changed files with 358 additions and 29 deletions
+39 -10
View File
@@ -5,43 +5,72 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\TourStoreRequest;
use App\Models\Tour;
use App\Models\TravelType;
use Illuminate\Http\Request;
class TourController extends Controller
{
public function index()
{
$tour = Tour::latest()->paginate(10);
return view('admin.tours.index', compact($tour));
}
$tours = Tour::latest()->paginate(10);
return view('admin.tours.index', compact('tours'));
}
public function create()
public function create()
{
return view('admin.tours.create');
}
}
public function store(TourStoreRequest $request)
public function store(TourStoreRequest $request)
{
Tour::create($request->validated());
// Tour::create($request->validated());
$tour = Tour::create($request->only([
'travel_type_id', 'title', 'slug', 'description',
'start_date', 'end_date', 'price', 'capacity', 'status'
]));
$this->uploadImages($tour, $request->file('images'));
return view('admin.tours.index')
->with('success', 'تور با موفقیت ایجاد شد.');
}
}
public function show(Tour $tour)
{
return view('admin.tours.show', compact('tour'));
}
public function edit(Tour $tour)
{
return view('admin.tours.edit', compact('tour'));
$travelTypes = TravelType::all();
return view('admin.tours.edit', compact('tour', 'travelTypes'));
}
public function update(TourStoreRequest $request, Tour $tour)
{
$tour->update($request->validated());
// ذخیره فایل و گرفتن مسیر (بدون پسوند)
$path = $request->file('image')->store('photos', 'public');
$extension = $request->file('image')->getClientOriginalExtension();
// ایجاد رکورد
$tour->files()->create([
'name' => $path,
'extension' => $extension,
'size' => $request->file('image')->getSize(),
'original_name' => $request->file('image')->getClientOriginalName(),
]);
return redirect()->route('admin.tours.index')
->with('success', 'تور با موفقیت به‌روزرسانی شد.');
}
public function destroy(Tour $tour)
{
$tour->delete();
@@ -50,7 +79,7 @@ class TourController extends Controller
->with('success', 'تور با موفقیت حذف شد.');
}
public function removeImage(Tour $tour, $image)
public function removeImage(Tour $tour, $image)
{
// منطق حذف تصویر — بسته به جدول تصاویر
return back()->with('success', 'تصویر حذف شد.');