"Создание контроллеров и обработка Request-запросов в Laravel"

Андрей Игнатов
Игнатов Андрей
Founder & Techlead
13 мая 2026
23

Контроллеры в Laravel помогают организовать бизнес-логику приложения и отделить её от маршрутов.

В этой статье разберём:

  • как создать Laravel controller;
  • как обрабатывать Request;
  • получение данных формы;
  • валидацию;
  • redirect;
  • работу с HTTP-запросами.

Что такое Laravel Controller

Controller — это класс, который обрабатывает HTTP-запросы.

Контроллеры находятся в:

app/Http/Controllers

Как создать Controller в Laravel

Команда:

php artisan make:controller PostController

Laravel создаст:

app/Http/Controllers/PostController.php

Пример Controller

namespace App\Http\Controllers;

class PostController extends Controller
{
    public function index()
    {
        return 'Posts page';
    }
}

Подключение Controller к Route

use App\Http\Controllers\PostController;

Route::get('/posts', [PostController::class, 'index']);

Laravel Request — обработка входящих данных

Laravel request используется для получения данных из HTTP-запроса.

Внедрение Request

use Illuminate\Http\Request;

public function store(Request $request)
{
    $title = $request->title;

    return $title;
}

Получение input данных

Все данные

$request->all();

Конкретное поле

$request->input('email');

Проверка существования

$request->has('email');

Валидация Request

Laravel имеет встроенную систему validation.

Пример валидации

$request->validate([
    'title' => 'required|max:255',
    'email' => 'required|email',
]);

Redirect после запроса

Laravel redirect используется после форм и CRUD-операций.

return redirect('/posts');

Redirect с сообщением

return redirect()
    ->route('posts.index')
    ->with('success', 'Post created');

Работа с файлами

Upload файлов

$file = $request->file('image');

Сохранение файла

$path = $file->store('images');

Resource Controllers

Laravel умеет автоматически создавать CRUD controller.

php artisan make:controller PostController --resource

Создаются методы:

  • index
  • create
  • store
  • show
  • edit
  • update
  • destroy

API Controllers

Для API:

php artisan make:controller Api/PostController --api

Dependency Injection в Controllers

Laravel автоматически внедряет зависимости.

Пример:

public function store(Request $request, PostService $service)
{
    //
}

Лучшие практики Controllers

Рекомендуется:

  • держать controller тонким;
  • выносить бизнес-логику в services;
  • использовать form requests;
  • минимизировать SQL в controller;
  • использовать dependency injection.

Form Request Validation

Laravel поддерживает отдельные validation classes.

Создание:

php artisan make:request StorePostRequest

Это помогает поддерживать чистую архитектуру.


Итоги

Laravel controllers и Request-система делают обработку HTTP-запросов простой и удобной.

Используя:

  • controllers;
  • request validation;
  • redirect;
  • dependency injection;

можно создавать чистые и масштабируемые Laravel-приложения.

👉 Заказать бесплатный экспресс-аудит проекта

Задать вопрос

Если у вас возник технический вопрос по нашим статьям или появилась потребность в профессиональной разработке сложного веб-проекта — оставьте свои контакты. Техлид «Команды-А» свяжется с вами, чтобы проконсультировать и помочь найти оптимальное решение.

Нажимая кнопку, вы соглашаетесь с политикой обработки персональных данных.