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

Метод domain

Метод domain применяется к экземпляру маршрута или группы маршрутов и позволяет задать поддомен, для которого будут доступны эти маршруты. Первым и единственным параметром передаётся строка с именем поддомена, в которой можно указывать динамические сегменты с помощью фигурных скобок. Эти сегменты затем передаются в замыкание или контроллер как параметры.

Синтаксис

<?php Route::domain($domainName, $callback); ?>

Пример

Давайте создадим маршрут, который будет доступен только для поддомена admin.example.com:

<?php use Illuminate\Support\Facades\Route; Route::domain('admin.example.com', function () { Route::get('/', function () { echo "Welcome to admin panel"; }); }); ?>

Результат выполнения кода при переходе на admin.example.com:

"Welcome to admin panel"

Пример

Создадим маршрут с динамическим параметром в поддомене, который будет передаваться в замыкание:

<?php use Illuminate\Support\Facades\Route; Route::domain('{username}.example.com', function () { Route::get('/profile', function ($username) { echo "Profile of user: " . $username; }); }); ?>

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

"Profile of user: john"

Пример

Давайте совместим динамический поддомен с параметрами из URL-адреса. В этом случае параметры передаются в замыкание в порядке их объявления:

<?php use Illuminate\Support\Facades\Route; Route::domain('{city}.example.com', function () { Route::get('/news/{id}', function ($city, $id) { echo "News " . $id . " from " . $city; }); }); ?>

Результат выполнения кода при переходе на moscow.example.com/news/5:

"News 5 from moscow"

Пример

Метод domain также можно применять к группе маршрутов с помощью метода group:

<?php use Illuminate\Support\Facades\Route; Route::group(['domain' => 'api.example.com'], function () { Route::get('/users', function () { echo "List of users"; }); Route::get('/users/{id}', function ($id) { echo "User with id: " . $id; }); }); ?>

Результат выполнения кода при переходе на api.example.com/users/3:

"User with id: 3"

Пример

Использование метода domain с контроллером. Динамический сегмент поддомена передаётся в метод контроллера как аргумент:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function show($username) { return "Profile of user: " . $username; } } ?>
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\UserController; Route::domain('{username}.example.com', function () { Route::get('/profile', [UserController::class, 'show']); }); ?>

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

"Profile of user: jane"

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

  • метод group,
    который группирует маршруты
  • метод prefix,
    который задаёт префикс для группы маршрутов
  • метод where,
    который ограничивает параметры маршрута регулярным выражением
  • метод middleware,
    который подключает посредников для маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить