feat: add province and city management

This commit is contained in:
2026-08-22 11:25:31 +03:30
parent 07e6dc7f5d
commit 64bfa2b94f
10 changed files with 408 additions and 0 deletions
@@ -0,0 +1,55 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\CityStoreRequest;
use App\Http\Requests\CityUpdateRequest;
use App\Models\City;
use App\Models\Province;
use Illuminate\Http\Request;
class CityController extends Controller
{
public function index(Request $request)
{
$query = City::with('province');
if ($request->filled('province_id')) {
$query->where('province_id', $request->province_id);
}
$cities = $query->paginate(20);
$provinces = Province::all();
return view('admin.cities.index', compact('cities', 'provinces'));
}
public function create()
{
$provinces = Province::all();
return view('admin.cities.create', compact('provinces'));
}
// استفاده از CityRequest به جای Request
public function store(CityStoreRequest $request)
{
City::create($request->validated());
return redirect()->route('admin.locations.cities.index')->with('success', 'شهر با موفقیت ایجاد شد.');
}
public function edit(City $city)
{
$provinces = Province::all();
return view('admin.cities.edit', compact('city', 'provinces'));
}
public function update(CityUpdateRequest $request, City $city)
{
$city->update($request->validated());
return redirect()->route('admin.locations.cities.index')->with('success', 'شهر ویرایش شد.');
}
public function destroy(City $city)
{
$city->delete();
return back()->with('success', 'شهر حذف شد.');
}
}
@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\ProvinceUpdateRequest;
use App\Models\Province;
class ProvinceController extends Controller
{
public function index()
{
$provinces = Province::paginate(20);
return view('admin.provinces.index', compact('provinces'));
}
public function create()
{
return view('admin.provinces.create');
}
public function store(ProvinceUpdateRequest $request)
{
Province::create($request->validated());
return redirect()->route('admin.locations.provinces.index')->with('success', 'استان با موفقیت ایجاد شد.');
}
public function edit(Province $province)
{
return view('admin.provinces.edit', compact('province'));
}
public function update(ProvinceUpdateRequest $request, Province $province)
{
$province->update($request->validated());
return redirect()->route('admin.locations.provinces.index')->with('success', 'استان ویرایش شد.');
}
public function destroy(Province $province)
{
$province->delete();
return back()->with('success', 'استان حذف شد.');
}
}