Обработка HTTP-запросов и валидация входных данных являются ключевыми аспектами разработки веб-приложений на Laravel. В этом руководстве мы рассмотрим, как обрабатывать HTTP-запросы, валидировать входные данные и создавать формы в Laravel.

Шаг 1: Создание маршрутов

Для начала, определим маршруты, которые будут обрабатывать HTTP-запросы. Откройте файл routes/web.php и добавьте следующие маршруты:

use Illuminate\Support\Facades\Route;

Route::get('/form', 'FormController@showForm');
Route::post('/form', 'FormController@submitForm');

Эти маршруты определяют два действия: одно для отображения формы (GET /form) и другое для обработки отправленной формы (POST /form).

Шаг 2: Создание контроллера

Создайте контроллер FormController с помощью команды Artisan:

php artisan make:controller FormController

В контроллере FormController добавьте два метода: showForm и submitForm.

Шаг 3: Отображение формы

В методе showForm создайте представление с формой. Например, в resources/views/form.blade.php:

<form action="/form" method="post">
    @csrf
    <label for="name">Name:</label>
    <input type="text" id="name" name="name">
    <label for="email">Email:</label>
    <input type="email" id="email" name="email">
    <button type="submit">Submit</button>
</form>

Шаг 4: Валидация входных данных

В методе submitForm валидируйте входные данные с помощью метода validate:

public function submitForm(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email|max:255',
    ]);

    // Обработка валидированных данных
    // Например, сохранение в базу данных

    return redirect('/form')->with('success', 'Form submitted successfully!');
}

Метод validate автоматически перенаправит пользователя обратно на форму, если валидация не пройдет, и отобразит сообщения об ошибках.

Шаг 5: Обработка валидированных данных

После успешной валидации вы можете обработать данные, например, сохранить их в базу данных.

Шаг 6: Отображение сообщений об успехе

Чтобы отобразить сообщение об успехе после отправки формы, добавьте следующий код в ваше представление form.blade.php:

@if (session('success'))
    <div>{{ session('success') }}</div>
@endif

Этот код проверяет, есть ли сообщение об успехе в сессии, и отображает его, если оно есть.

Заключение

Теперь у вас есть базовое понимание того, как обрабатывать HTTP-запросы, валидировать входные данные и создавать формы в Laravel. Этот пример может быть расширен для обработки более сложных форм и валидации.