Существует несколько поддерживаемых типов запросов
(GET, POST, PATCH, DELETE, PUT и OPTIONS), но из-за того, что наиболее распространёнными являются
GET и
POST, в примерах будут использованы только эти два типа.
Тип запроса определяется по
$_SERVER['REQUEST_METHOD'] и должен быть указан в маршруте обязательно, если отличается от
GET или допускается несколько вариантов типов
для входящего запроса. Если маршруту не присвоен тип, то по умолчанию он считается как
GET.
get(...) - самый распространённый способ с
HTTP-методом
GET.
add(...) - другое название
get(). Может использоваться, когда вложен в массовое назначение типов.
any(...) - поддерживает сразу все доступные
HTTP-методы.
post(...) - аналог
get() по аргументам, но метод
POST.
put(...) - аналогично, метод
PUT.
delete(...) - аналогично, метод
DELETE.
patch(...) - аналогично, метод
PATCH.
match(...) - первым параметром передается массив
HTTP-методов, остальные аргументы аналогично предыдущим.
options(...) - метод
OPTIONS, может быть использован только с контроллером.
Для массового присвоения маршрутам типа(-ов) существует два метода маршрутизации -
getType() и
endType(). Второй должен обязательно замыкать первый, ограничивая область его действия.
Методы getType() и endType()
Присвоить выбранным маршрутам тип
POST:
Route::get( ... ); // GET
Route::add( ... ); // GET
Route::post( ... ); // POST
Route::getType('post');
Route::add( ... ); // POST
Route::add( ... ); // POST
Route::add( ... ); // POST
Route::endType();
Присвоить маршрутам допустимые типы
POST и
GET:
Route::getType(['post','get']);
Route::add( ... ); // POST или GET
Route::add( ... ); // POST или GET
Route::add( ... ); // POST или GET
Route::endType();
Метод type()
Метод
type() позволяет принудительно установить тип или типы для определенной группы или конкретного маршрута. Этот метод также
принимает массив типов в качестве аргумента. Значения последовательно примененных к роуту методов
type() складываются, в отличие от
getType(), в котором значение определяется по последнему примененному.
Route::getType('post');
Route::add( ... ); // POST
Route::type('get')->add( ... ); // GET
Route::add( ... ); // POST
Route::endType();