LeadController.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. /*
  4. * LeadController — просмотр заявок с веб-форм в административной панели.
  5. * Маршруты:
  6. * GET admin/leads — список всех заявок (с фильтром по форме)
  7. * GET admin/leads/{lead} — просмотр одной заявки (помечает как прочитанную)
  8. * DELETE admin/leads/{lead} — удалить заявку
  9. */
  10. use App\Http\Controllers\Controller;
  11. use App\Models\Lead;
  12. use App\Models\WebForm;
  13. use Illuminate\Http\RedirectResponse;
  14. use Illuminate\Http\Request;
  15. use Illuminate\View\View;
  16. class LeadController extends Controller
  17. {
  18. public function index(Request $request): View
  19. {
  20. $forms = WebForm::orderBy('title')->get();
  21. $formId = $request->query('form_id');
  22. $query = Lead::with('form')->latest();
  23. if ($formId) {
  24. $query->where('form_id', $formId);
  25. }
  26. $leads = $query->paginate(30)->withQueryString();
  27. return view('admin.leads.index', compact('leads', 'forms', 'formId'));
  28. }
  29. public function show(Lead $lead): View
  30. {
  31. $lead->markAsRead();
  32. return view('admin.leads.show', compact('lead'));
  33. }
  34. public function destroy(Lead $lead): RedirectResponse
  35. {
  36. $lead->delete();
  37. return redirect()->route('admin.leads.index')->with('success', 'Заявка удалена.');
  38. }
  39. }