From 615f6ba14d7097590221a7ad31d801f8134e0996 Mon Sep 17 00:00:00 2001 From: sayaliparab Date: Tue, 8 Apr 2025 16:24:43 +0530 Subject: [PATCH] stateCIty --- app/Http/Controllers/LocationController.php | 76 ++++++++++++++++++++- app/Models/Models/City.php | 5 ++ routes/admin_api.php | 3 + 3 files changed, 82 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/LocationController.php b/app/Http/Controllers/LocationController.php index 31646c6..d90bfdd 100644 --- a/app/Http/Controllers/LocationController.php +++ b/app/Http/Controllers/LocationController.php @@ -5,13 +5,13 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Models\Country; use App\Models\Models\State; - +use App\Models\Models\City; class LocationController extends Controller { public function getCountries() { - $countries = Country::select('id', 'name','phonecode')->get(); + $countries = Country::select('id', 'name', 'phonecode')->get(); return response()->json([ 'data' => $countries @@ -21,4 +21,76 @@ class LocationController extends Controller // public function getState($id){ // $state = State::with('getCountryName')->select('id','name') // } + + + // public function getState($countryName) + // { + // $country = Country::where('name', $countryName)->first(); + + // if (!$country) { + // return response()->json([ + // 'status' => false, + // 'message' => 'Country not found.' + // ], 404); + // } + // $states = State::with('getCountryName') + // ->where('country_xid', $country->id) + // ->select('id', 'name') + // ->get(); + + // return response()->json([ + // // 'status' => true, + // 'data' => $states + // ]); + // } + + public function getState(Request $request) + { + $countryName = $request->query('country_name'); + + $country = Country::where('name', $countryName)->first(); + + if (!$country) { + return response()->json([ + 'status' => false, + 'message' => 'Country not found.' + ], 404); + } + + $states = State::with('getCountryName') + ->where('country_xid', $country->id) + ->select('id', 'name') + ->get(); + + return response()->json([ + // 'status' => true, + 'data' => $states + ]); + } + + public function getCity(Request $request) { + + $stateName = $request->query('state_name'); + + $state = State::where('name', $stateName)->first(); + + if (!$state) { + return response()->json([ + 'status' => false, + 'message' => 'Country not found.' + ], 404); + } + + $states = city::with('getCityName') + ->where('state_xid', $state->id) + ->select('id', 'name') + ->get(); + + return response()->json([ + // 'status' => true, + 'data' => $states + ]); + } + + } diff --git a/app/Models/Models/City.php b/app/Models/Models/City.php index def994b..fa37482 100644 --- a/app/Models/Models/City.php +++ b/app/Models/Models/City.php @@ -7,4 +7,9 @@ use Illuminate\Database\Eloquent\Model; class City extends Model { protected $table='cities'; + + public function getCityName() + { + return $this->belongsTo(state::class, 'state_xid', 'id'); + } } diff --git a/routes/admin_api.php b/routes/admin_api.php index 291aebc..f8fa871 100644 --- a/routes/admin_api.php +++ b/routes/admin_api.php @@ -76,3 +76,6 @@ Route::get('/rule-chains/{ruleChainId}', [RuleChainController::class, 'showruleC Route::get('/countries', [LocationController::class, 'getCountries'])->name('get.country'); +// Route::get('/states-by-country-name/{name}', [LocationController::class, 'getState'])->name('get.state'); +Route::get('/states-by-country-name', [LocationController::class, 'getState'])->name('get.state'); +Route::get('/city-by-state-name', [LocationController::class, 'getCity'])->name('get.city'); -- 2.34.1