From cc87514e8f973b14718b87d0d8edb8b4d284f1e1 Mon Sep 17 00:00:00 2001 From: mina-esn Date: Tue, 18 Aug 2026 19:36:59 +0330 Subject: [PATCH] fix: load cities dynamically based on selected province --- app/Http/Controllers/LocationController.php | 8 +- .../Requests/Auth/RegisterPostRequest.php | 4 +- resources/views/auth/register.blade.php | 79 +++++++++++++------ routes/auth.php | 9 ++- 4 files changed, 68 insertions(+), 32 deletions(-) diff --git a/app/Http/Controllers/LocationController.php b/app/Http/Controllers/LocationController.php index ac46b3e..dfb608a 100644 --- a/app/Http/Controllers/LocationController.php +++ b/app/Http/Controllers/LocationController.php @@ -8,12 +8,14 @@ use Illuminate\Http\JsonResponse; class LocationController extends Controller { - public function getCities($provinceId): JsonResponse + public function getCities(int $provinceId): JsonResponse { - $cities = City::where('province_id', $provinceId) - ->orderBy('name') + $cities = City::query() + ->where('province_id', $provinceId) + ->orderBy('name', 'asc') ->get(['id', 'name']); + return response()->json($cities); } } diff --git a/app/Http/Requests/Auth/RegisterPostRequest.php b/app/Http/Requests/Auth/RegisterPostRequest.php index 0a2e96e..4fcb3ee 100644 --- a/app/Http/Requests/Auth/RegisterPostRequest.php +++ b/app/Http/Requests/Auth/RegisterPostRequest.php @@ -97,12 +97,12 @@ class RegisterPostRequest extends FormRequest 'alpha_num', 'confirmed' ], - 'user_province' => [ + 'province_id' => [ 'nullable', 'integer', 'exists:provinces,id' ], - 'user_city' => [ + 'city_id' => [ 'nullable', 'integer', 'exists:cities,id' diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index 64068e7..e9bb30f 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -271,37 +271,68 @@ + @push('scripts') + + + @endpush + + + + @endsection diff --git a/routes/auth.php b/routes/auth.php index cea1aa3..8ebe834 100644 --- a/routes/auth.php +++ b/routes/auth.php @@ -3,11 +3,14 @@ use App\Http\Controllers\Auth\LoginController; use App\Http\Controllers\Auth\LogoutController; use App\Http\Controllers\Auth\RegisterController; +use App\Http\Controllers\LocationController; use Illuminate\Support\Facades\Route; -Route::prefix('locations')->name('locations.')->controller(\App\Http\Controllers\LocationController::class)->group(function () { - Route::get('/cities/{provinceId}', 'getCities')->name('cities'); -}); +Route::prefix('locations')->name('locations.') + ->controller(LocationController::class) + ->group(function () { + Route::get('/cities/{provinceId}', 'getCities')->name('cities'); + }); Route::prefix('auth')->name('auth.')->group(function () { Route::middleware('guest:web')->group(function () {