Сейчас мы с вами разберем некоторые продвинутые нюансы при работе с формами в фреймворке Laravel.
Все данные
Вы можете получить все данные ввода в виде массива с помощью метода all:
<?php
$data = $request->all();
?>
Пусть в вашей форме есть произвольное количество инпутов. После отправки формы получите массив отправленных значений, отправьте его в представление и выведите эти данные в виде списка ul.
Получение части переменных запроса
Метод only позволяет получить массив, состоящий из значений перечисленных полей формы. Имена полей можно передавать в виде массива или перечислять через запятую.
Пусть, к примеру, была отправлена форма с полями 'name', 'age', 'login', 'password'. Давайте получим массив, состоящий из значений полей 'name' и 'age':
<?php
$data = $request->only(['name', 'age']);
?>
Имена полей можно передавать в виде массива либо перечислять через запятую, вот так:
<?php
$data = $request->only('name', 'age');
?>
Аналогичным образом можно использовать метод except, позволяющий исключить часть данных из запроса. Давайте, например, исключим поля 'login' и 'password':
<?php
$data = $request->except(['login', 'password']);
?>
Метод except также позволяет перечислять имена полей через запятую:
<?php
$data = $request->except('login', 'password');
?>
Пусть у нас будет форма, имитирующая регистрацию пользователя на сайте. Спросите с помощью этой формы у пользователя его имя, фамилию, email, желаемый логин, желаемый пароль (инпут с типом password). После отправки формы выведите на экран в виде списка ul все отправленные поля, кроме поля с паролем и email. Решите задачу сначала через except, а затем через only.
Сложные имена в формах
Иногда имена элементов форм могут представлять массивы, наподобие такого:
<form action="">
<input type="text" name="user[name]">
<input type="text" name="user[surname]">
<input type="submit">
</form>
Для получения значений таких инпутов вы можете использовать точечную запись для обращения к массивам:
<?php
$name = $request->input('user.name');
$name = $request->input('user.surname');
?>
Внедрение зависимости и параметры маршрута
По следующей ссылке изучите раздел Внедрение зависимости и параметры маршрута.
Самостоятельно попробуйте получить данные из формы, передав при этом два параметра в ваш маршрут.
Методы и путь запроса
По следующей ссылке изучите раздел Методы и путь запроса - все неизученные ранее вами места.
Подсказка по теории: "Для получения полного URL без строки запроса" - имеется ввиду без GET параметров.
Сделайте так, чтобы у вас было действие, которое будет срабатывать по следующему адресу: /test/method/. Перейдите по указанному адресу, но с GET параметром, например, так: /test/method?param=1. Решите все задачи ниже для данного адреса с GET параметром.
Для указанного адреса выведите результат метода path.
Для указанного адреса выведите результат метода url.
Для указанного адреса выведите результат метода fullUrl.
С помощью метода fullUrlWithQuery добавьте к запрошенному URL GET параметр page со значением 1.
Самостоятельно попробуйте поработать с методом is.