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

Класс Route

Класс Route предоставляет статические методы для регистрации маршрутов, соответствующих различным HTTP-методам. Первым параметром всегда передаётся URI-шаблон, вторым - действие, которое будет выполнено при совпадении маршрута. В качестве действия может выступать замыкание или строка с контроллером.

Базовое определение маршрута

Простейший маршрут возвращает текстовый ответ через замыкание:

<?php use Illuminate\Support\Facades\Route; Route::get('/', function () { return 'Hello, World!'; }); ?>

Результат выполнения кода при переходе на главную страницу:

"Hello, World!"

Если необходимо вернуть представление (шаблон Blade), используйте функцию view:

<?php use Illuminate\Support\Facades\Route; Route::get('/welcome', function () { return view('welcome'); }); ?>

Маршруты с параметрами

Маршруты могут содержать динамические сегменты, которые передаются в замыкание как аргументы:

<?php use Illuminate\Support\Facades\Route; Route::get('/user/{id}', function ($id) { return "User ID: " . $id; }); ?>

Результат выполнения кода при переходе по адресу /user/5:

"User ID: 5"

Можно передавать несколько параметров:

<?php use Illuminate\Support\Facades\Route; Route::get('/posts/{post}/comments/{comment}', function ($post, $comment) { return "Post $post, Comment $comment"; }); ?>

Результат выполнения кода при переходе по адресу /posts/10/comments/3:

"Post 10, Comment 3"

Доступные HTTP-методы

Класс Route предоставляет методы для всех стандартных HTTP-глаголов:

<?php use Illuminate\Support\Facades\Route; Route::get('/page', function () { return 'GET request'; }); Route::post('/page', function () { return 'POST request'; }); Route::put('/page/{id}', function ($id) { return "PUT request for ID: $id"; }); Route::patch('/page/{id}', function ($id) { return "PATCH request for ID: $id"; }); Route::delete('/page/{id}', function ($id) { return "DELETE request for ID: $id"; }); ?>

Регистрация маршрута для всех методов

Метод any регистрирует маршрут, который обрабатывает все HTTP-методы:

<?php use Illuminate\Support\Facades\Route; Route::any('/any', function () { return 'Handles any HTTP method'; }); ?>

Маршрут с контроллером

Вместо замыкания можно указать контроллер и метод через строку:

<?php use Illuminate\Support\Facades\Route; Route::get('/profile', [ProfileController::class, 'show']); ?>

Пример контроллера:

<?php namespace App\Http\Controllers; class ProfileController extends Controller { public function show() { return 'User profile page'; } } ?>

Результат выполнения кода при переходе по адресу /profile:

"User profile page"

Маршруты с ограничениями

Метод where позволяет ограничить параметры маршрута регулярными выражениями:

<?php use Illuminate\Support\Facades\Route; Route::get('/user/{id}', function ($id) { return "User ID: $id"; })->where('id', '[0-9]+'); ?>

Теперь маршрут сработает только если параметр id содержит только цифры.

Именованные маршруты

Метод name позволяет задать имя маршруту для последующей генерации URL:

<?php use Illuminate\Support\Facades\Route; Route::get('/users/{id}', function ($id) { return "User $id"; })->name('user.profile'); ?>

Генерация URL по имени маршрута:

<?php use Illuminate\Support\Facades\Route; $res = route('user.profile', ['id' => 15]); echo $res; ?>

Результат выполнения кода:

"http://localhost/users/15"

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

  • метод get,
    который регистрирует маршрут для GET-запросов
  • метод post,
    который регистрирует маршрут для POST-запросов
  • метод group,
    который группирует маршруты с общими атрибутами
  • метод prefix,
    который добавляет префикс к URI группы маршрутов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить