when($request->filled('search'), function ($query) use ($request) { $query->where('name', 'LIKE', '%' . $request->input('search') . '%'); }) ->withCount('cities') ->orderByDesc('created_at') ->paginate(); return view('admin.provinces.index', compact('provinces')); } public function create() { return view('admin.provinces.create'); } public function store(Request $request) { $request->validate([ 'name' => ['required', 'max:255', 'unique:provinces,name'], ]); Province::create([ 'name' => $request->input('name'), ]); return redirect() ->route('admin.provinces.index') ->with('success', 'استان با موفقیت ایجاد شد'); } public function edit(Province $province) { return view('admin.provinces.edit', compact('province')); } public function update(Request $request, Province $province) { $request->validate([ 'name' => ['required', 'max:255', 'unique:provinces,name,' . $province->id], ]); $province->update([ 'name' => $request->input('name'), ]); return redirect() ->route('admin.provinces.index') ->with('success', 'استان با موفقیت ویرایش شد'); } public function destroy(Province $province) { if ($province->cities()->exists()) { return back()->withErrors([ 'error' => 'این استان دارای شهرستان است و قابل حذف نیست.' ]); } $province->delete(); return redirect()->route('admin.provinces.index')->withErrors([ 'success' => 'استان با موفقیت حذف شد' ]); } }