wip: add flight creation flow with pending bug fixes

This commit is contained in:
2026-08-20 17:05:43 +03:30
parent dd8785514f
commit f8b9646125
2 changed files with 76 additions and 2 deletions
@@ -3,8 +3,14 @@
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\Flight\FlightStoreRequest;
use App\Models\Airline;
use App\Models\Airport;
use App\Models\City;
use App\Models\Country;
use App\Models\Flight;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
class FlightController extends Controller
{
@@ -34,17 +40,81 @@ class FlightController extends Controller
public function create()
{
$title = 'ایجاد پرواز';
$airlines = Airline::query()
->orderBy('name')
->get();
$countries = Country::query()
->orderBy('name')
->get();
$iranCountry = Country::query()
->where('name', 'iran')
->first();
return view('admin.flights.create', compact(
'title',
'airlines',
'countries',
'iranCountry'
));
}
public function citiesByCountry(Country $country): JsonResponse
{
$cities = City::query()
->where('county_id', $country->id)
->orderBy('name')
->get([
'id',
'name',
]);
public function store()
return response()->json($cities);
}
public function airportsByCity(City $city): JsonResponse
{
$airports = Airport::query()
->where('city_id', $city->id)
->orderBy('name')
->get([
'id',
'name',
]);
return response()->json($airports);
}
public function store(FlightStoreRequest $request)
{
}
public function edit()
public function edit(Flight $flight)
{
$title = 'ویرایش پرواز';
$flight->load(['origin_airport.city.country', 'airport.city.country']);
$airlines = Airline::query()->orderBy('name')->get();
$countries = Country::query()->orderBy('name')->get();
$iranCountry = Country::query()->where('name', 'iran')->first();
$originCountryId = $flight->origin_airport?->city?->country?->id;
$destinationCountryId = $flight->airport?->city?->country?->id;
return view('admin.flights.edit', compact(
'title',
'flight',
'airlines',
'countries',
'iranCountry',
'originCountryId',
'destinationCountryId'
));
}
public function update()
+4
View File
@@ -86,6 +86,10 @@ Route::prefix('admin')->name('admin.')->group(function () {
Route::get('create', 'create')->name('create');
Route::post('store', 'store')->name('store');
Route::get('cities-by-country/{country}', 'citiesByCountry')->name('cities-by-country');
Route::get('airports-by-city/{city}', 'airportsByCity')->name('airports-by-city');
Route::prefix('trash')->name('trash.')->group(function () {
Route::get('/', 'trash')->name('index');