ApplicationController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Support\Facades\Auth;
  4. use App\Models\Application;
  5. use App\Models\Course;
  6. use Illuminate\Http\Request;
  7. class ApplicationController extends Controller
  8. {
  9. public function index() {
  10. $applications = Auth::user()
  11. ->applications()
  12. ->with('course')
  13. ->orderBy('updated_at', 'desc')
  14. ->get();
  15. return view('applications.index', compact('applications'));
  16. }
  17. public function create() {
  18. $courses = Course::all();
  19. return view('applications.create', compact('courses'));
  20. }
  21. public function store(Request $request) {
  22. $request->validate([
  23. 'course_id' => ['required', 'exists:courses,id'],
  24. 'date_start' => ['required', 'date', 'after_or_equal:today'],
  25. 'payment_method' => ['required'],
  26. ]);
  27. Application::create([
  28. 'user_id' => Auth::id(),
  29. 'course_id' => $request->course_id,
  30. 'date_start' => $request->date_start,
  31. 'payment_method' => $request->payment_method,
  32. ]);
  33. return redirect()
  34. ->route('applications.index')
  35. ->with('success', 'Заявка успешно создана!');
  36. }
  37. public function setReview(Request $request, $id) {
  38. $request->validate([
  39. 'review' => ['required'],
  40. ]);
  41. $application = Application::findOrFail($id);
  42. $application->review = $request->review;
  43. $application->save();
  44. return redirect()
  45. ->back()
  46. ->with('success', "Отзыв на заявку $id успешно оставлен!");
  47. }
  48. }