| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Storage;
- use Illuminate\Support\Str;
- class FormController extends Controller
- {
- public function showForm()
- {
- return view('form');
- }
- public function submitForm(Request $request)
- {
- $validated = $request->validate([
- 'name' => 'required|min:2|max:100',
- 'email' => 'required|email',
- 'phone' => 'required|digits:11',
- 'gender' => 'boolean',
- 'message' => 'required|min:10|max:1000',
- ]);
- $filename = 'form-data-' . Str::uuid() . '.json';
- Storage::put("form-data/{$filename}", json_encode([
- 'id' => Str::uuid(),
- 'name' => $validated['name'],
- 'email' => $validated['email'],
- 'phone' => $validated['phone'],
- 'gender' => array_key_exists('gender', $validated) ? $validated['gender'] : 0,
- 'message' => $validated['message'],
- 'submitted_at' => now()->timezone('Asia/Irkutsk')->toDateISOString(),
- ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
- return redirect()->route('form.show')
- ->with('success', 'Данные успешно сохранены!');
- }
- public function showData()
- {
- $files = Storage::files('form-data');
- $data = [];
- foreach ($files as $file) {
- if (pathinfo($file, PATHINFO_EXTENSION) === 'json') {
- $content = Storage::get($file);
- $data[] = json_decode($content, true);
- }
- }
- return view('data', compact('data'));
- }
- }
|