FormController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Storage;
  5. class FormController extends Controller
  6. {
  7. public function showForm()
  8. {
  9. return view('form');
  10. }
  11. public function submitForm(Request $request)
  12. {
  13. $validated = $request->validate([
  14. 'name' => 'required|string|max:100',
  15. 'email' => 'required|email|max:255',
  16. 'message' => 'nullable|string|max:1000',
  17. ], [
  18. 'name.required' => 'Поле "Имя" обязательно для заполнения.',
  19. 'email.required' => 'Поле "Email" обязательно для заполнения.',
  20. 'email.email' => 'Введите корректный адрес электронной почты.',
  21. ]);
  22. $timestamp = now()->format('Ymd_His');
  23. $uniqueId = uniqid();
  24. $fileName = "submission_{$timestamp}_{$uniqueId}.json";
  25. $dataToSave = array_merge($validated, [
  26. 'submitted_at' => now()->toDateTimeString(),
  27. 'ip_address' => $request->ip(),
  28. ]);
  29. Storage::put('submissions/' . $fileName, json_encode($dataToSave, JSON_PRETTY_PRINT));
  30. return redirect()->route('form.show')->with('success', 'Спасибо! Ваши данные успешно сохранены в файл.');
  31. }
  32. }