Задать вопрос
@sgidlev

Как сделать динамический Static Route?

Приветствую.

Помогите собрать регулярное выражение для статического маршрута:
Мне нужен маршрут вида: "/shop/category1/category2/category3" и мне нужно получить последний параметр в маршруте category3. Также маршрут может быть вида "/shop/category1" или "/shop/category1/category2/category3/category4/category5".

Я попробовал использовать для паттерна #shop/(.*?)# и /shop/%category. Маршрут работает, но ничего не возвращает.
Попробовал #shop/(.*?)([a-z\-]+)# и

Hi. Could someone help me with the Static Routes? I need to make a route like "/shop/category1/category2/category3" and I need to get only the last param value (category3). Also the route could be "/shop/category1" or "/shop/category1/category2/category3/category4/category5", so it should be dynamic. I tried this one: #shop/(.*?)# and /shop/%category and I send param "category" to the controller. The route is working, but I can't get the "category" param.
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Fett
@Fett
Разработчик
Можете попробовать так:
shop\/.*?(?P<last>[^\/]+)$
Пример
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
thewind
@thewind
php программист, front / backend developer
$routeParts = explode('/', $route);
$lastRouteParam = end($routeParts);

так не пойдет?) Если у вас могут быть GET параметры еще, то сначала используйте parse_url функцию
$route = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
Ответ написан
paulfcdd
@paulfcdd
PHP/Sf/WEB developer
Не изобретайте велосипед, используйте готовые библиотеки для маршрутизации, тот же Symfony Router, например. Зачем делать то, что до вас уже сделали?)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽