get(); return view('form', compact('categories')); } 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', 'category_id' => 'nullable|exists:categories,id', ]); $formData = FormData::create([ 'uuid' => Str::uuid(), 'name' => $validated['name'], 'email' => $validated['email'], 'phone' => $validated['phone'], 'gender' => $validated['gender'] ?? false, 'message' => $validated['message'], 'category_id' => $validated['category_id'] ?? null, ]); if ($request->has('comment') && !empty($request->comment)) { $formData->comments()->create([ 'content' => $request->comment, 'user_id' => auth()->id() ?? null, ]); } return redirect()->route('form.show') ->with('success', 'Данные успешно сохранены в базе данных! ID: ' . $formData->id); } public function showData(Request $request) { $query = FormData::with(['category', 'comments']); if ($request->has('gender') && in_array($request->gender, ['male', 'female'])) { if ($request->gender === 'male') { $query->male(); } else { $query->female(); } } if ($request->has('today') && $request->boolean('today')) { $query->today(); } $data = $query->latest()->paginate(10); $categories = Category::all(); return view('data', compact('data', 'categories')); } public function show($id) { $formData = FormData::with(['category', 'comments.user']) ->findOrFail($id); return view('form-data.show', compact('formData')); } public function edit($id) { $formData = FormData::findOrFail($id); $categories = Category::active()->get(); return view('form-data.edit', compact('formData', 'categories')); } public function update(Request $request, $id) { $formData = FormData::findOrFail($id); $validated = $request->validate([ 'name' => 'required|min:2|max:100', 'email' => 'required|email', 'phone' => 'required|digits:11', 'gender' => 'boolean', 'message' => 'required|min:10|max:1000', 'category_id' => 'nullable|exists:categories,id', ]); $formData->update($validated); return redirect()->route('data.show') ->with('success', 'Данные успешно обновлены!'); } public function destroy($id) { $formData = FormData::findOrFail($id); $formData->delete(); return redirect()->route('data.show') ->with('success', 'Данные перемещены в корзину!'); } public function addComment(Request $request, $id) { $formData = FormData::findOrFail($id); $validated = $request->validate([ 'content' => 'required|min:5|max:500', ]); $formData->comments()->create([ 'content' => $validated['content'], 'user_id' => auth()->id() ?? null, ]); return back()->with('success', 'Комментарий добавлен!'); } }