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

Метод routeIs

Метод routeIs применяется к объекту запроса и позволяет проверить, соответствует ли текущий маршрут указанному имени или шаблону. В качестве параметра метод принимает строку с именем маршрута или шаблоном для сравнения. Если переданный параметр совпадает с именем текущего маршрута, метод возвращает true, в противном случае - false. Метод удобно использовать для условного выполнения логики в зависимости от того, на какой странице находится пользователь.

Синтаксис

<?php $request->routeIs($routeName); ?>

Пример

Давайте проверим, соответствует ли текущий маршрут имени 'home':

<?php use IlluminateHttpRequest; Route::get('/', function (Request $req) { if ($req->routeIs('home')) { echo 'This is the home page'; } else { echo 'This is not the home page'; } })->name('home'); ?>

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

"This is the home page"

Пример

Давайте проверим, соответствует ли текущий маршрут шаблону 'admin.*', например, для всех маршрутов административной панели:

<?php use IlluminateHttpRequest; Route::get('/admin', function (Request $req) { if ($req->routeIs('admin.*')) { echo 'Access to admin panel'; } else { echo 'Access denied'; } })->name('admin.index'); ?>

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

"Access to admin panel"

Пример

Давайте используем метод routeIs в контроллере для определения активного пункта меню:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; class MenuController extends Controller { public function index(Request $req) { $menuItems = [ ['name' => 'Home', 'route' => 'home'], ['name' => 'About', 'route' => 'about'], ['name' => 'Contact', 'route' => 'contact'], ]; $res = []; foreach ($menuItems as $item) { if ($req->routeIs($item['route'])) { $res[] = $item['name'] . ' (active)'; } else { $res[] = $item['name']; } } return $res; } } ?>

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

["Home", "About (active)", "Contact"]

Пример

Давайте проверим соответствие маршрута нескольким возможным именам с помощью массива:

<?php use IlluminateHttpRequest; Route::get('/profile', function (Request $req) { $isProfile = $req->routeIs(['profile.show', 'profile.edit']); if ($isProfile) { echo 'This is a profile page'; } else { echo 'This is not a profile page'; } })->name('profile.show'); ?>

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

"This is a profile page"

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

  • метод is,
    который проверяет соответствие текущего маршрута указанному шаблону URL
  • метод route,
    который возвращает параметры текущего маршрута
  • метод current,
    который возвращает текущий объект маршрута
  • метод has,
    который проверяет существование маршрута по имени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить