feat: add created_by field handling for flights

This commit is contained in:
2026-08-19 13:31:25 +03:30
parent 700bd38c20
commit 7cf68cc02f
103 changed files with 29226 additions and 18 deletions
+139 -1
View File
@@ -3,9 +3,147 @@
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;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
class TourController extends Controller
{
//
public function index(Request $request)
{
$tours = Tour::query()
->applySearch($request->all())
->filterType($request->travel_type_id)
->sort($request->sort)
->latest()
->paginate(4);
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->hasFile('image')) {
$data['image'] = $request
->file('image')
->store('tours','public');
}
$data['created_by'] = auth('admin')->id();
Tour::create($data);
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->hasFile('image')) {
if($tour->image){
Storage::disk('public')
->delete($tour->image);
}
$data['image'] = $request
->file('image')
->store('tours','public');
}
$tour->update($data);
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);
}
$tour->delete();
return back()
->with('success','تور حذف شد');
}
}