Просмотр файла app/Http/Controllers/Admin/UserFieldController.php

Размер файла: 2.7Kb
  1. <?php
  2.  
  3. declare(strict_types=1);
  4.  
  5. namespace App\Http\Controllers\Admin;
  6.  
  7. use App\Http\Requests\StoreUserFieldRequest;
  8. use App\Models\UserField;
  9. use Illuminate\Http\JsonResponse;
  10. use Illuminate\Http\RedirectResponse;
  11. use Illuminate\View\View;
  12.  
  13. class UserFieldController extends AdminController
  14. {
  15. /**
  16. * List user fields
  17. *
  18. * @return View
  19. */
  20. public function index(): View
  21. {
  22. $fields = UserField::query()
  23. ->orderBy('sort')
  24. ->get();
  25.  
  26. return view('admin/user-fields/index', compact('fields'));
  27. }
  28.  
  29. /**
  30. * Create advert
  31. *
  32. * @return View
  33. */
  34. public function create(): View
  35. {
  36. $types = UserField::TYPES;
  37. $field = new UserField();
  38.  
  39. return view('admin/user-fields/create', compact('field', 'types'));
  40. }
  41.  
  42. /**
  43. *
  44. *
  45. * @param StoreUserFieldRequest $request
  46. *
  47. * @return RedirectResponse
  48. */
  49. public function store(StoreUserFieldRequest $request): RedirectResponse
  50. {
  51. UserField::query()->create($request->all());
  52.  
  53. return redirect('admin/user-fields')->with('success', __('main.record_added_success'));
  54. }
  55.  
  56. /**
  57. * Change advert
  58. *
  59. * @param int $id
  60. *
  61. * @return View
  62. */
  63. public function edit(int $id): View
  64. {
  65. $types = UserField::TYPES;
  66.  
  67. /** @var UserField $field */
  68. $field = UserField::query()->find($id);
  69.  
  70. if (! $field) {
  71. abort(404, __('admin.user_fields.not_found'));
  72. }
  73.  
  74. return view('admin/user-fields/edit', compact('field', 'types'));
  75. }
  76.  
  77. /**
  78. * @param int $id
  79. * @param StoreUserFieldRequest $request
  80. *
  81. * @return RedirectResponse
  82. */
  83. public function update(int $id, StoreUserFieldRequest $request): RedirectResponse
  84. {
  85. $field = UserField::query()->find($id);
  86.  
  87. if (! $field) {
  88. abort(404, __('admin.user_fields.not_found'));
  89. }
  90.  
  91. $field->update($request->all());
  92.  
  93. return redirect('admin/user-fields')->with('success', __('main.record_saved_success'));
  94. }
  95.  
  96. /**
  97. * Delete field
  98. *
  99. * @param int $id
  100. *
  101. * @return JsonResponse
  102. */
  103. public function destroy(int $id): JsonResponse
  104. {
  105. /** @var UserField $field */
  106. $field = UserField::query()->find($id);
  107.  
  108. if (! $field) {
  109. return response()->json([
  110. 'success' => false,
  111. 'message' => __('admin.user_field.not_found'),
  112. ]);
  113. }
  114.  
  115. $field->data()->delete();
  116. $field->delete();
  117.  
  118. return response()->json([
  119. 'success' => true,
  120. 'message' => __('main.record_deleted_success'),
  121. ]);
  122. }
  123. }