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