РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
445 of 1392 menu

Класс Request

Класс Request является основным инструментом для получения данных от клиента в Laravel. Он инкапсулирует всю информацию о HTTP-запросе, включая метод, URI, параметры, заголовки, загруженные файлы и куки. Доступ к объекту запроса можно получить через фасад Request, внедрение зависимости в контроллеры или глобальную функцию request. Объект запроса содержит все входные данные, включая параметры строки запроса, тело POST-запроса и JSON-данные, объединяя их в единый массив. Класс предоставляет множество методов для проверки наличия данных, их извлечения и валидации.

Синтаксис

Базовый синтаксис получения объекта запроса в контроллере:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { // } } ?>

Получение всех данных запроса

Метод all возвращает все данные из запроса в виде ассоциативного массива:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { $res = $request->all(); echo $res['title']; echo $res['content']; } } ?>

Получение конкретного поля

Метод input получает значение поля по имени с возможностью указать значение по умолчанию:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { $title = $request->input('title'); $status = $request->input('status', 'draft'); echo $title; echo $status; } } ?>

Результат выполнения кода при запросе с параметрами title=article и status=published:

"article" "published"

Проверка наличия поля

Метод has проверяет, присутствует ли поле в запросе:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { if ($request->has('title')) { echo "Title exists"; } if ($request->has(['title', 'content'])) { echo "Both fields exist"; } } } ?>

Выборка определённых полей

Метод only возвращает только указанные поля, а except возвращает все поля кроме указанных:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { $res = $request->only(['title', 'content']); $res = $request->except(['_token', 'password']); echo $res['title']; } } ?>

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

Метод file возвращает загруженный файл, а hasFile проверяет наличие файла:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function upload(Request $request) { if ($request->hasFile('image')) { $file = $request->file('image'); $path = $file->store('images'); echo $path; } } } ?>

Получение заголовков и куки

Метод header получает значение заголовка, а cookie - значение куки:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { $userAgent = $request->header('User-Agent'); $sessionId = $request->cookie('session_id'); echo $userAgent; echo $sessionId; } } ?>

Работа с JSON-запросами

Метод json получает данные из JSON-запроса в виде массива:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { $res = $request->json()->all(); echo $res['title']; } } ?>

Проверка метода запроса

Метод method возвращает HTTP-метод запроса, а isMethod проверяет соответствие:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { if ($request->isMethod('post')) { echo "POST request"; } echo $request->method(); } } ?>

Получение информации о пользователе

Метод user возвращает аутентифицированного пользователя, а ip - IP-адрес клиента:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function index(Request $request) { $user = $request->user(); $ip = $request->ip(); echo $user->name; echo $ip; } } ?>

Валидация данных запроса

Метод validate выполняет валидацию данных запроса и возвращает отвалидированные данные:

<?php use IlluminateHttpRequest; class ArticleController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'title' => 'required|max:255', 'content' => 'required', 'status' => 'in:draft,published' ]); echo $validated['title']; } } ?>

Работа через глобальный помощник

Глобальная функция request предоставляет доступ к объекту запроса в любом месте приложения:

<?php class ArticleController extends Controller { public function index() { $title = request()->input('title'); $all = request()->all(); $method = request()->method(); echo $title; } } ?>

Смотрите также

  • класс Route,
    который определяет маршруты и связывает URI с контроллерами
  • класс Response,
    который формирует HTTP-ответы
  • класс Session,
    который управляет данными сессии
  • функция request,
    которая возвращает объект запроса из глобального помощника
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить