Edit File: CountryController.php
<?php namespace App\Http\Controllers\Admin; use App\Exports\CitiesExport; use App\Exports\CountriesExport; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\countries\Store; use App\Models\Country ; use App\Traits\Report; use Maatwebsite\Excel\Facades\Excel; use App\Models\User; class CountryController extends Controller { /*************************** get all **************************/ public function index() { $rows = Country::latest()->get(); return view('admin.countries.index', compact('rows')); } /*************************** store **************************/ public function create() { return view('admin.countries.create'); } public function export() { return Excel::download(new CountriesExport, 'countries.xlsx'); } /*************************** store **************************/ public function store(Store $request) { $country=Country::create($request->validated() + ([ 'name' => ['ar' => $request->name_ar , 'en' => $request->name_en] ])); Report::addToLog(' اضافه بلد') ; return response()->json(['url' => route('admin.countries.index')]); } /*************************** edit page **************************/ public function edit($id) { $row = Country::findOrFail($id); return view('admin.countries.edit' , ['row' => $row]); } /*************************** update **************************/ public function update(Store $request, $id) { $row = Country::findOrFail($id)->update($request->validated() + ([ 'name' => ['ar' => $request->name_ar , 'en' => $request->name_en] , ])); Report::addToLog(' تعديل بلد') ; return response()->json(['url' => route('admin.countries.index')]); } /*************** show *************************************/ public function show($id) { $row = Country::findOrFail($id); return view('admin.countries.show' , ['row' => $row]); } /*************************** delete **************************/ public function destroy($id) { $row = Country::findOrFail($id); $users = User::all(); foreach($users as $user){ // dd($user->country_key,$row->calling_code); if($row->calling_code == $user->country_key){ return response()->json(['key' => 'failed','msg' => 'لا يمكن حذف الدوله لأن رمز الهاتف مستخدم']); } } $row->delete(); Report::addToLog('حذف بلد') ; return response()->json(['id' =>$id]); } public function destroyAll(Request $request) { $requestIds = json_decode($request->data); foreach ($requestIds as $id) { $ids[] = $id->id; } $keys = User::distinct()->pluck('country_key')->toArray(); $countries = Country::WhereIn('id',$ids)->get(); foreach($countries as $country){ if(in_array($country->calling_code,$keys)){ return response()->json(['key' =>'failed','msg' => 'لا يمكن حذف الدوله لأن رمز الهاتف مستخدم']); } } if (Country::WhereIn('id',$ids)->delete()) { Report::addToLog(' حذف العديد من البلاد') ; return response()->json(['key' => 'success']); } else { return response()->json(['key' => 'failed']); } } }
Back to File Manager