git commit "complete province and city management with ajax"

This commit is contained in:
2026-08-19 18:56:35 +03:30
parent 3f46f6356a
commit 8872473e8d
13 changed files with 1071 additions and 72 deletions
@@ -0,0 +1,75 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\CityStoreRequest;
use App\Models\City;
use App\Models\Province;
class CityController extends Controller
{
public function index()
{
$cities = City::with('province')
->latest()
->paginate(10);
return view('admin.cities.index', compact('cities'));
}
public function create()
{
$provinces = Province::all();
return view('admin.cities.create', compact('provinces'));
}
public function store(CityStoreRequest $request)
{
$data = $request->validated();
City::create($data);
return redirect()->route('admin.cities.index')->with('success','شهر ثبت شد');
}
public function edit(City $city)
{
$provinces = Province::all();
return view('admin.cities.edite', compact('city','provinces'));
}
public function update(CityStoreRequest $request, City $city)
{
$data = $request->validated();
$city->update($data);
return redirect()->route('admin.cities.index')->with('success','شهر ویرایش شد');
}
public function destroy(City $city)
{
$city->delete();
return back()->with('success','شهر حذف شد');
}
}
@@ -0,0 +1,82 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Province;
use Illuminate\Http\Request;
class ProvinceController extends Controller
{
public function index()
{
$provinces = Province::latest()->paginate(10);
return view('admin.provinces.index', compact('provinces'));
}
public function create()
{
return view('admin.provinces.create');
}
public function store(Request $request)
{
$request->validate([
'name'=>'required'
]);
Province::create([
'name'=>$request->name
]);
return redirect()
->route('admin.provinces.index');
}
public function edit(Province $province)
{
return view('admin.provinces.edit',compact('province'));
}
public function update(Request $request, Province $province)
{
$request->validate([
'name'=>'required'
]);
$province->update([
'name'=>$request->name
]);
return redirect()
->route('admin.provinces.index');
}
public function destroy(Province $province)
{
$province->delete();
return back();
}
}
+10 -2
View File
@@ -12,7 +12,7 @@ class CityStoreRequest extends FormRequest
*/
public function authorize(): bool
{
return false;
return true;
}
/**
@@ -23,7 +23,15 @@ class CityStoreRequest extends FormRequest
public function rules(): array
{
return [
//
'province_id'=>['required'],
'name'=>[
'required',
'string',
'max:255'
]
];
}
}