feat: add province and city management
This commit is contained in:
@@ -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', 'استان حذف شد.');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CityStoreRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' =>
|
||||
[
|
||||
'required',
|
||||
'string',
|
||||
'max:100'
|
||||
],
|
||||
'province_id' =>
|
||||
[
|
||||
'required',
|
||||
'exists:provinces,id'
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ProvinceUpdateRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' =>
|
||||
[
|
||||
'required',
|
||||
'string',
|
||||
'max:100'
|
||||
],
|
||||
|
||||
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user