Получение всех данных запроса
С помощью метода "all" класса Request можно получить доступ одновременно к POST и GET данным.<?php
$data = $request->all();
?>
Получение части запроса
Метод "only" возвращает массив, в котором содержатся перечисленные поля формы. Причём имена поле можно передавать аргументом метода как в виде массив, так и через запятую в виде нескольких аргументов.К примеру, если форма отправляет поля с названиями (значение атрибута "name") равными "animal" и "food", то можно запросить массив с этими данными с помощью метода "only" так:
<?php
$data = $request->only(['animal', 'food']);
$data = $request->only('animal', 'food');
?>
В противоположность методу "only" существует метод "except". Он исключает данные из данных запроса. Как и в случае с "only" можно передать названия исключаемых полей через массив или несколько аргументов:
<?php
$data = $request->except(['animal', 'food']);
$data = $request->except('animal', 'food');
?>
Передаваемые массивы
Иногда формы передают не одиночные значения, а целые массивы. Для этого используются квадратные скобки[ ... ]
в атрибутах "name":
<form action="/mouse/result/" method="post">
<input type="text" name="user[name]">
<input type="text" name="user[age]">
<input type="submit">
</form>
В таком случае для получения данных формы необходимо использовать метод "input", в котором необходимо указать название поля через точку (обращение к элементу массива):
<?php
$name = $request->input('user.name');
$age = $request->input('user.age');
?>
Методы и путь запроса
Рассмотрим несколько полезных методов класса Request. Для начала - метод "path" для получения данных URI:<?php
$uri = $request->path();
?>
Для проверки соответствия пути запросе заданной маске можно использовать метод "is":
<?php
if ($request->is('admin/*')) {
// код для выполнения только на
// страницах внутри раздела admin/
}
?>
Для получения URL запроса можно использовать одноимённый метод. А для получения полного URL можно использовать метод "fullUrl":
<?php
$url = $request->url();
$fullUrl = $request->fullUrl();
?>
Чтобы одновременно получить и добавить к URL параметры можно использовать метод "fullUrlWithQuery", у которого в параметре необходимо указать добавляемые данные:
<?php
// страница https://www.mousedc.ru/docs/
$url = $request->fullUrlWithQuery(['document' => 'agreement']);
// внутри переменной $url: https://www.mousedc.ru/docs/?document=agreement
?>