CountryController.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Http\Controllers\Admin\Config;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Country;
  5. use Exception;
  6. use Illuminate\Http\Request;
  7. use Log;
  8. use Response;
  9. use Validator;
  10. class CountryController extends Controller
  11. {
  12. // 添加国家/地区
  13. public function store(Request $request)
  14. {
  15. $validator = Validator::make($request->all(), [
  16. 'code' => 'required|string|unique:country,code',
  17. 'name' => 'required',
  18. ]);
  19. if ($validator->fails()) {
  20. return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
  21. }
  22. if (Country::create($validator->validated())) {
  23. return Response::json(['status' => 'success', 'message' => trans('common.generate_item', ['attribute' => trans('common.success')])]);
  24. }
  25. return Response::json(['status' => 'fail', 'message' => '生成失败']);
  26. }
  27. // 编辑国家/地区
  28. public function update(Request $request, Country $country)
  29. {
  30. $validator = Validator::make($request->all(), ['name' => 'required']);
  31. if ($validator->fails()) {
  32. return Response::json(['status' => 'fail', 'message' => $validator->errors()->all()]);
  33. }
  34. try {
  35. if ($country->update($validator->validated())) {
  36. return Response::json(['status' => 'success', 'message' => '编辑成功']);
  37. }
  38. } catch (Exception $e) {
  39. Log::error('编辑国家/地区时失败:'.$e->getMessage());
  40. return Response::json(['status' => 'fail', 'message' => '编辑失败:'.$e->getMessage()]);
  41. }
  42. return Response::json(['status' => 'fail', 'message' => '编辑失败']);
  43. }
  44. // 删除国家/地区
  45. public function destroy(Country $country)
  46. {
  47. // 校验该国家/地区下是否存在关联节点
  48. if ($country->nodes()->exists()) {
  49. return Response::json(['status' => 'fail', 'message' => '该国家/地区下存在关联节点,请先取消关联']);
  50. }
  51. try {
  52. if ($country->delete()) {
  53. return Response::json(['status' => 'success', 'message' => '操作成功']);
  54. }
  55. } catch (Exception $e) {
  56. Log::error('删除国家/地区失败:'.$e->getMessage());
  57. return Response::json(['status' => 'fail', 'message' => '删除失败:'.$e->getMessage()]);
  58. }
  59. return Response::json(['status' => 'fail', 'message' => '删除失败']);
  60. }
  61. }