fix: update tour management
This commit is contained in:
@@ -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', 'تصویر حذف شد.');
|
||||
|
||||
@@ -74,6 +74,18 @@ class TourStoreRequest extends FormRequest
|
||||
'required',
|
||||
'integer',
|
||||
'min:0'],
|
||||
'images' =>
|
||||
[
|
||||
'required',
|
||||
'array'
|
||||
],
|
||||
'images.*' =>
|
||||
[
|
||||
'image',
|
||||
'mimes:jpeg,png,jpg,webp',
|
||||
'max:2048'
|
||||
],
|
||||
|
||||
'status' =>
|
||||
[
|
||||
'nullable',
|
||||
|
||||
Reference in New Issue
Block a user