DataController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Submission;
  4. class DataController extends Controller
  5. {
  6. public function showData()
  7. {
  8. // Получаем все заявки из БД с комментариями и тегами
  9. $submissions = Submission::with(['comments', 'tags'])
  10. ->withCount('comments')
  11. ->active() // Query Scope
  12. ->latest()
  13. ->get();
  14. return view('data_table', [
  15. 'submissions' => $submissions,
  16. 'count' => $submissions->count()
  17. ]);
  18. }
  19. public function show($id)
  20. {
  21. // Просмотр одной заявки со всеми связями
  22. $submission = Submission::with(['comments.attachments', 'tags', 'attachments'])
  23. ->findOrFail($id);
  24. return view('submission_detail', [
  25. 'submission' => $submission
  26. ]);
  27. }
  28. public function edit($id)
  29. {
  30. $submission = Submission::findOrFail($id);
  31. return view('submission_edit', [
  32. 'submission' => $submission
  33. ]);
  34. }
  35. public function update(Request $request, $id)
  36. {
  37. $submission = Submission::findOrFail($id);
  38. $validated = $request->validate([
  39. 'name' => 'required|string|max:100',
  40. 'email' => 'required|email|max:255',
  41. 'message' => 'nullable|string|max:1000',
  42. 'status' => 'required|in:active,archived,pending',
  43. ]);
  44. $submission->update($validated);
  45. return redirect()->route('data.show')->with('success', 'Заявка успешно обновлена!');
  46. }
  47. public function destroy($id)
  48. {
  49. $submission = Submission::findOrFail($id);
  50. $submission->delete(); // Мягкое удаление
  51. return redirect()->route('data.show')->with('success', 'Заявка успешно удалена!');
  52. }
  53. }