stateCIty #76

Merged
Sayli.Parab merged 1 commits from sayali into main 2025-04-08 10:55:25 +00:00
3 changed files with 82 additions and 2 deletions

View File

@@ -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
]);
}
}

View File

@@ -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');
}
}

View File

@@ -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');