@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.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 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, например. Зачем делать то, что до вас уже сделали?)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
03 мая 2024, в 16:26
3000 руб./за проект
03 мая 2024, в 16:09
1200 руб./за проект
03 мая 2024, в 16:06
3000 руб./за проект