diff --git a/app/Http/Controllers/Admin/FlightController.php b/app/Http/Controllers/Admin/FlightController.php index a5c1576..160b7af 100644 --- a/app/Http/Controllers/Admin/FlightController.php +++ b/app/Http/Controllers/Admin/FlightController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; +use App\Http\Requests\Admins\FlightPostRequest; use App\Http\Requests\Admins\FlightUpdatePostRequest; use App\Models\Airline; use App\Models\Airport; @@ -75,11 +76,36 @@ class FlightController extends Controller public function create() { - $airports = Airport::all(); + $airlines = Airline::query() + ->orderBy('name') + ->get(); - return view('admin.flights.create', compact('airports')); + $airports = Airport::query() + ->orderBy('name') + ->get(); + + return view('admin.flights.create', compact('airlines', 'airports')); } + public function store(FlightPostRequest $request) + { + $data = $request->validated(); + Flight::create([ + 'flight_number' => $data['flight_number'], + 'airline_id' => $data['airline_id'], + 'origin_airports_id' => $data['origin_airports_id'], + 'destination_airports_id' => $data['destination_airports_id'], + 'start_time' => Verta::parse($data['start_time'])->datetime(), + 'end_time' => Verta::parse($data['end_time'])->datetime(), + 'price' => $data['price'], + 'capacity' => $data['capacity'], + 'status' => $data['status'] ?? 1, + ]); + + return redirect() + ->route('admin.flights.index') + ->with('success', 'پرواز جدید با موفقیت ثبت شد.'); + } public function destroy(Flight $flight) { $flight->delete(); @@ -89,9 +115,6 @@ class FlightController extends Controller ->with('success', 'پرواز با موفقیت حذف شد.'); } - public function store() - { - } } diff --git a/app/Http/Requests/Admins/FlightPostRequest.php b/app/Http/Requests/Admins/FlightPostRequest.php new file mode 100644 index 0000000..d547ff1 --- /dev/null +++ b/app/Http/Requests/Admins/FlightPostRequest.php @@ -0,0 +1,67 @@ + [ + 'required', + 'string', + 'max:255' + ], + 'airline_id' => [ + 'required', + 'integer', + 'exists:airlines,id' + ], + 'origin_airports_id' => [ + 'required', + 'integer', + 'exists:airports,id' + ], + 'destination_airports_id' => [ + 'required', + 'integer', + 'exists:airports,id', + 'different:origin_airports_id' + ], + 'start_time' => [ + 'required', + ], + 'end_time' => [ + 'required', + ], + 'price' => [ + 'required', + 'integer', + 'min:0' + ], + 'capacity' => [ + 'required', + 'integer', + 'min:1' + ], + 'status' => [ + 'nullable', + 'integer' + ], + ]; + } + + public function messages(): array + { + return [ + // + ]; + } +} diff --git a/resources/views/admin/flights/create.blade.php b/resources/views/admin/flights/create.blade.php new file mode 100644 index 0000000..8256234 --- /dev/null +++ b/resources/views/admin/flights/create.blade.php @@ -0,0 +1,275 @@ +@extends('dashboard.layouts.app') + +@section('title', 'ثبت پرواز جدید') + +@section('account-content') + +
+ + @if(session('success')) +
+
+ {{ session('success') }} +
+
+ @endif + +
+ +
+ +
+ + + +@endsection diff --git a/resources/views/admin/flights/edit.blade.php b/resources/views/admin/flights/edit.blade.php index 59caa1b..4d65c74 100644 --- a/resources/views/admin/flights/edit.blade.php +++ b/resources/views/admin/flights/edit.blade.php @@ -155,6 +155,7 @@ class="form-control" value="{{ old('start_time', verta($flight->start_time)->format('Y/m/d H:i')) }}" placeholder="تاریخ و ساعت حرکت" + autocomplete="off" > @error('start_time') @@ -176,6 +177,7 @@ class="form-control" value="{{ old('end_time', verta($flight->end_time)->format('Y/m/d H:i')) }}" placeholder="تاریخ و ساعت رسیدن" + autocomplete="off" > @error('end_time') @@ -240,28 +242,33 @@ -@endsection - -@section('scripts') - diff --git a/resources/views/admin/tours/edit.blade.php b/resources/views/admin/tours/edit.blade.php index b7ccc09..927127a 100644 --- a/resources/views/admin/tours/edit.blade.php +++ b/resources/views/admin/tours/edit.blade.php @@ -167,30 +167,34 @@ + + } + }); + @endsection diff --git a/routes/admins.php b/routes/admins.php index 9045eef..40c645c 100644 --- a/routes/admins.php +++ b/routes/admins.php @@ -50,20 +50,20 @@ Route::prefix('admin')->name('admin.')->group(function () { Route::delete('{tour}', 'destroy')->name('destroy'); }); - Route::prefix('flights')->name('flights.')->group(function () { + Route::prefix('flights')->name('flights.')->group(function () { - Route::get('/', [FlightController::class, 'index'])->name('index'); + Route::get('/', [FlightController::class, 'index'])->name('index'); - Route::get('/{flight}/edit', [FlightController::class, 'edit'])->name('edit'); + Route::get('/create', [FlightController::class, 'create'])->name('create'); - Route::put('/{flight}', [FlightController::class, 'update'])->name('update'); + Route::post('/', [FlightController::class, 'store'])->name('store'); - Route::get('/flights/create', [FlightController::class, 'create'])->name('create'); + Route::get('/{flight}/edit', [FlightController::class, 'edit'])->name('edit'); - Route::post('/flights', [FlightController::class, 'store'])->name('store'); + Route::put('/{flight}', [FlightController::class, 'update'])->name('update'); - Route::delete('/{flight}', [FlightController::class, 'destroy'])->name('destroy'); - }); + Route::delete('/{flight}', [FlightController::class, 'destroy'])->name('destroy'); + }); });