(Создание контактной формы Laravel CRUD без SMTP на любом HTML-шаблоне или веб-сайте на основе HTML с контактной формой).

Подключение панели администратора

  • Небольшое украшение панели администратора

Итак, после последнего урока я очистил панель тем Corona Admin. Для этого потребуются базовые знания HTML и CSS. Поскольку это не учебник по HTML, мы пропустим подробные объяснения того, как я это сделал.

http://127.0.0.1:8000/admin/index

http://127.0.0.1:8000/admin/view-messages

  • web.php

В web.php мы должны сделать маршрут для каждого нашего сообщения:

Route::get(“/admin/view-messages”, [ContactController::class, ‘listMessages’]);
Route::get(“/admin/messages/{id}”, [ContactController::class, ‘message_details’]);
Route::delete(“/admin/messages/{id}/delete”, [ContactController::class, ‘delete_message’]);
  • Создайте файл с именем listmessages.blade.php

Расположение: views/admin/listMessages.blade.php

Что делать: Измените файл HTML, в котором перечислены все сообщения контактной формы.

  • Подключите это к логике.

Это соответствующая часть указанного файла после тега ‹nav›.

<div class=”main-panel”>
 <div class=”content-wrapper”>
 
 <button id=”multiple-delete” data-route=”{{ route(‘multiple-delete’) }}” class=”btn btn-danger ml-2 mb-3">Delete All Selected</button>
 <div class=”row”>
 <div class=”col-12 grid-margin”>
 <div class=”card”>
 <div class=”card-body”>
 <h4 class=”card-title”>Data</h4>
 <div class=”table-responsive”>
 <table class=”table” id=”dataTables”>
 <thead>
 <tr>
 <th> <div class=”form-check form-check-flat m-0">
 <label class=”form-check-label”>
 <input type=”checkbox” class=”form-check-input”>
 </label>
 </div></th>
 <th> Name </th>
 <th> Email </th>
 <th> Actions </th>
 </tr>
 </thead>
 <tbody>
 @foreach ($messages as $message)
 <tr>
 <td>
 <div class=”form-check form-check-flat m-0">
 <label class=”form-check-label”>
 <input type=”checkbox” class=”form-check-input” value={{ $message->id }}>
 </label>
 </div>
 </td>
 <td>{{ $message->name }}</td>
 <td>{{ $message->email }}</td>
 <td>
<a href=”{{ url(‘/admin/messages/’ . $message->id . ‘/delete’) }}”><i class=”mdi mdi-pencil icon-sm mr-2 text-success”></i></a>
<form method=”post” action=”{{ url(‘/admin/messages/’ . $message->id . ‘/delete’) }}” style=”display:inline” style=”display: inline”>
 {{ method_field(‘DELETE’) }}
 @csrf
 <button type=’submit’ class=”mdi mdi-close icon-sm text-danger” style=”background-color: black;”></button>
 </form>
 </td>
 </tr>
 @endforeach
 </tbody>
 </table>
 </div>
 </div>
 </div>
 </div>
 </div>
 <button type=”button” class=”btn btn-primary”>log out</button>
 </div>

По сути, так вы подключаете раздел сообщений панели администратора Laravel.

Пояснения:

  • Раздел @foreach создает цикл, который перебирает все сообщения.
@foreach ($messages as $message)
…
@endforeach
  • Кнопка Details должна быть написана примерно так:
<a href=”{{ url(‘/admin/messages/’ . $message->id) }}” class=”btn btn-primary btn-sm”>Details</a>

Конечно, вместо текста «Подробности» я решил использовать значок карандаша в своем реальном коде.

  • В атрибуте href мы указали маршрут, который необходимо создать в контроллере маршрута для просмотра сведений об одном сообщении.
<a href=”{{ url(‘/admin/messages/’ . $message->id . ‘/delete’) }}”>
  • Кнопка удаления более сложная. Это не может быть тег ссылки, потому что ссылки делают только запрос GET.
  • Вместо этого мы используем форму только с кнопкой отправки. Атрибут действия принимает маршрут, который мы должны создать для удаления сообщения.
<form method=”post” action=”{{ url(‘/admin/messages/’ . $message->id . ‘/delete’) }}” style=”display:inline” style=”display: inline”>
 {{ method_field(‘DELETE’) }}
 @csrf
<button type=’submit’ class=”mdi mdi-close icon-sm text-danger” style=”background-color: black;”></button>
</form>
  • Затем мы используем форму только с кнопкой отправки. Атрибут действия принимает маршрут, который мы должны создать для удаления сообщения.
  • Стандартная HTML-форма может отправлять только запросы GET или POST. Итак, мы добавили {{ method_field(‘DELETE’) }}, чтобы сообщить laravel, что мы делаем запрос DELETE.
  • Теперь запустите сервер с помощью команды php artisan serve и перейдите по адресу http://127.0.0.0.1:8000/admin/view-messages.

** Кнопка деталей написана так:

<a href=”{{ url(‘/admin/messages/’ . $message->id) }}” class=”btn btn-primary btn-sm”>Details</a>

Конечно, я решил использовать значок вместо текста «Подробности» для кнопки «Подробности».

  • Вот код для деталей-message.blade.php

Расположение: resources/views/details-message.blade.php

<html>
<head>
 <title>Contact Form</title>
 <link rel=”stylesheet” href=”https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
</head>
<body>
 <div class=”container”>
 <div class=”row”>
 <div class=”col-md-8 mx-auto my-5">
 <h3 class=”text-center mb-5">Message details</h3>
 <h3>Name: {{ $message->name }}</h3>
 <h3>Email: {{ $message->email }}</h3>
 <h3>Message: {{ $message->message }}</h3>
 </div>
 </div>
 </div>
</body>

Все в порядке. В любом случае, все должно работать. Дайте знать, если у вас появятся вопросы.