Полный цикл в digital

Отправка методом GET

Давайте теперь научимся отправлять формы методом GET и получать их данные в контроллере. Сделаем для этого два метода контроллера. Первый метод будет показывать форму, а второй метод будет обрабатывать данные этой формы после ее отправки. Для начала сделаем два роута.

Первый роут для показа формы:

routes/web.php<?php
Route::get('/form', [PostController::class, 'form']);

Второй роут для обработки данных отправленной формы:

routes/web.php<?php
Route::get('/result', [PostController::class, 'result']);

Теперь в представлении сделаем нашу форму. В атрибуте action не забудем указать URL роута, который отвечает за обработку формы:

resources/views/post/form.blade.php<form action="/result">
	<input name="title">
	<input name="slug">
	<input type="submit">
</form>

Давайте теперь сделаем действия в контроллере:

app/Http/Controllers/PostController.php<?php
use Illuminate\Http\Request; // подключим класс Request

class PostController extends Controller
{
    public function result()
    {
        
    }
    
    public function form()
    {
        
    }
}

Действие form будет показывать форму:

app/Http/Controllers/PostController.php<?php
use Illuminate\Http\Request; // подключим класс Request

public function form()
{
    return view('post.form');
}

А действие result будет обрабатывать данные отправленной формы. Для этого мы должны внедрить в него объект запроса:

app/Http/Controllers/PostController.php<?php
use Illuminate\Http\Request; // подключим класс Request

public function result(Request $request)
{
    
}

Данные формы можно получить с помощью метода input объекта запроса. Параметром этот метод принимает имя инпута. Давайте получим и выведем отправленные данные:

app/Http/Controllers/PostController.php<?php
use Illuminate\Http\Request; // подключим класс Request

public function result(Request $request)
{
    dump($request->input('title'));
    dump($request->input('slug'));
}

А теперь передадим данные нашей формы в представление:

app/Http/Controllers/PostController.php<?php
use Illuminate\Http\Request; // подключим класс Request

public function result(Request $request)
{
    $title = $request->input('title');
    $slug  = $request->input('slug');
    
    return view('post.result', [
        'title' => $title, 'slug' => $slug
    ]);
}

В представлении метода result выведем переданные переменные:

resources/views/post/result.blade.php<h1>{{ $title }}</h1>
<p>{{ $slug }}</p>
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг