Bläddra i källkod

Added edit and show for data

AItEKS 3 veckor sedan
förälder
incheckning
4d9f3387fe

+ 24 - 1
form-app-with-data/app/Http/Controllers/FormController.php

@@ -39,6 +39,29 @@ class FormController extends Controller
     {
         $submissions = ContactMessage::latest()->get();
 
-        return view('admin', compact('submissions'));
+        return view('admin.index', compact('submissions'));
+    }
+
+    public function show(ContactMessage $submission)
+    {
+        return view('admin.show', compact('submission'));
+    }
+
+    public function edit(ContactMessage $submission)
+    {
+        return view('admin.edit', compact('submission'));
+    }
+
+    public function update(Request $request , ContactMessage $submission)
+    {
+        $validated = $request->validate([
+            'name' => 'required|string|min:3|max:15',
+            'email' => 'required|email|max:50',
+            'message' => 'required|string|min:10|max:100'
+        ]);
+
+        $submission->update($validated);
+
+        return redirect()->route('admin.index')->with('success', 'Данные обновлены!');
     }
 }

+ 49 - 0
form-app-with-data/resources/views/admin/edit.blade.php

@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="ru">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Редактирование записи #{{ $submission->id }}</title>
+</head>
+<body>
+    <div class="container">
+        <h1>Редактирование записи</h1>
+
+        {{-- Блок для вывода ошибок валидации --}}
+        @if ($errors->any())
+            <div class="alert" style="background: #f8d7da; color: #721c24;">
+                <strong>Ошибка!</strong> Проверьте введенные данные.
+                <ul>
+                    @foreach ($errors->all() as $error)
+                        <li>{{ $error }}</li>
+                    @endforeach
+                </ul>
+            </div>
+        @endif
+
+        <form action="{{ route('admin.update', $submission) }}" method="POST">
+            @csrf
+            @method('PUT')
+            <div style="margin-bottom: 15px;">
+                <label for="name">Имя</label>
+                <input type="text" name="name" id="name" value="{{ old('name', $submission->name) }}" required style="width: 100%; padding: 10px; border-radius: 5px; border: 1px solid #ccc;">
+            </div>
+
+            <div style="margin-bottom: 15px;">
+                <label for="email">Email</label>
+                <input type="email" name="email" id="email" value="{{ old('email', $submission->email) }}" required style="width: 100%; padding: 10px; border-radius: 5px; border: 1px solid #ccc;">
+            </div>
+
+            <div style="margin-bottom: 20px;">
+                <label for="message">Сообщение</label>
+                <textarea name="message" id="message" rows="5" required style="width: 100%; padding: 10px; border-radius: 5px; border: 1px solid #ccc;">{{ old('message', $submission->message) }}</textarea>
+            </div>
+
+            <div>
+                <button type="submit" class="btn">Сохранить изменения</button>
+                <a href="{{ route('admin.index') }}" class="btn btn-secondary">Отмена</a>
+            </div>
+        </form>
+    </div>
+</body>
+</html>

+ 14 - 12
form-app-with-data/resources/views/admin.blade.php → form-app-with-data/resources/views/admin/index.blade.php

@@ -180,33 +180,35 @@
                             <th>Email</th>
                             <th>Сообщение</th>
                             <th>Дата отправки</th>
+                            <th style="text-align: right;">Действия</th> {{-- 1. Новый заголовок --}}
                         </tr>
                     </thead>
                     <tbody>
-                        @foreach($submissions as $index => $submission)
+                        @foreach($submissions as $submission)
                             <tr>
-                                <td>{{ $index + 1 }}</td>
+                                {{-- Ваши существующие ячейки --}}
+                                <td>{{ $loop->iteration }}</td> {{-- $loop->iteration лучше, чем $index + 1 --}}
                                 <td>{{ $submission->name }}</td>
                                 <td class="email-cell">{{ $submission->email }}</td>
                                 <td class="message-cell">{{ $submission->message }}</td>
                                 <td class="date-cell">
                                     {{ $submission->created_at->format('d.m.Y H:i') }}
                                 </td>
+
+                                </td>
+
+                                <td style="text-align: right; white-space: nowrap;">
+                                    
+                                    <a href="{{ route('admin.show', $submission->id) }}" class="btn" style="padding: 5px 10px; font-size: 12px; background: #3498db;" title="Просмотр">👁️</a>
+
+                                    <a href="{{ route('admin.edit', $submission->id) }}" class="btn" style="padding: 5px 10px; font-size: 12px; background: #f1c40f;" title="Редактировать">✏️</a>
+                                </td>
                             </tr>
                         @endforeach
                     </tbody>
                 </table>
             @else
-                <div class="empty-state">
-                    <div class="empty-state-icon">📭</div>
-                    <h3>Данных пока нет</h3>
-                    <p style="margin-top: 10px; color: #999;">
-                        Отправьте форму, чтобы увидеть данные здесь
-                    </p>
-                    <a href="{{ route('form.index') }}" class="btn" style="margin-top: 20px;">
-                        Перейти к форме
-                    </a>
-                </div>
+                {{-- Ваш блок empty-state --}}
             @endif
         </div>
     </div>

+ 33 - 0
form-app-with-data/resources/views/admin/show.blade.php

@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="ru">
+<head>
+    <meta charset="UTF-8">
+    <title>Просмотр записи #{{ $submission->id }}</title>
+    {{-- Вставьте сюда ваши теги <style> и <meta> --}}
+</head>
+<body>
+    <div class="container">
+        <h1>Просмотр записи #{{ $submission->id }}</h1>
+        <div style="background: #f8f9fa; padding: 20px; border-radius: 8px;">
+            <h3>Имя:</h3>
+            <p>{{ $submission->name }}</p>
+            <hr style="margin: 15px 0;">
+
+            <h3>Email:</h3>
+            <p class="email-cell">{{ $submission->email }}</p>
+            <hr style="margin: 15px 0;">
+
+            <h3>Сообщение:</h3>
+            <pre class="message-cell">{{ $submission->message }}</pre>
+            <hr style="margin: 15px 0;">
+
+            <h3>Дата отправки:</h3>
+            <p class="date-cell">{{ $submission->created_at->format('d.m.Y в H:i:s') }}</p>
+        </div>
+        <div style="margin-top: 30px;">
+            <a href="{{ route('admin.index') }}" class="btn btn-secondary">← Назад к списку</a>
+            <a href="{{ route('admin.edit', $submission) }}" class="btn" style="background: #f1c40f; margin-left: 10px;">Редактировать</a>
+        </div>
+    </div>
+</body>
+</html>

+ 5 - 2
form-app-with-data/routes/web.php

@@ -5,6 +5,9 @@ use App\Http\Controllers\FormController;
 use App\Http\Controllers\AdminController;
 
 Route::get('/', [FormController::class, 'index'])->name('form');
-Route::post('/', [FormController::class, 'submit'])->name('form.submit'); 
+Route::post('/form-submit', [FormController::class, 'submit'])->name('form.submit'); 
 
-Route::get('/admin', [FormController::class, 'showData'])->name('admin.index');
+Route::get('/admin', [FormController::class, 'showData'])->name('admin.index');
+Route::get('/admin/{submission}', [FormController::class, 'show'])->name('admin.show');
+Route::get('/admin/{submission}/edit', [FormController::class, 'edit'])->name('admin.edit');
+Route::put('/admin/{submission}', [FormController::class, 'update'])->name('admin.update');