Рейтинг:1

Проблема маршрутизации пользовательского модуля

флаг cn

У меня есть собственный модуль, в котором я создал следующий маршрут:

мой.пользовательский.маршрут:     
   путь: /{someVariable}/мой-модуль/тест
      значения по умолчанию:
        _controller: '\Drupal\my_module\Controller\myController::build'
      требования:
        _permission: 'доступ к содержимому'

На контроллере у меня есть следующий код

построение публичной функции ($ someVariable)
  {
    эхо «здесь»;
    дамп ($ некоторая переменная);
    выход;

Когда я иду в /devel/routes, маршрут там с именем, я вижу все детали маршрута

когда я вызываю функцию пути, она генерирует маршрут, как и ожидалось, но когда я перехожу на страницу, просто получаю ответ 404 вместо того, чтобы дать мне ожидаемый результат.

если я изменю путь, чтобы переменная находилась в любой другой позиции, кроме первой части URL-адреса, она работает так, как ожидается

Я работаю с Drupal 9.3.2

Спасибо

Kevin avatar
флаг in
Я не думаю, что маршруты могут начинаться с параметра.
флаг cn
@Kevin в Symfony можно. не уверен в Drupal, но должно быть возможно
4uk4 avatar
флаг cn
@Paulo, собственное сопоставление маршрутов Drupal не позволяет этого. Для обходного пути см. https://drupal.stackexchange.com/questions/246950/do-new-routes-require-a-static-first-partion.
Jaypan avatar
флаг de
Да, пути не могут начинаться с динамических переменных, динамическая часть пути должна начинаться со второго элемента и далее. Ссылка 4k4 объясняет, как решить эту проблему.
флаг cn
спасибо 4k4 Jaypan. что помогло найти решение. Всего одно замечание. на роутинге нам надо переменную поставить на второе место и на входящий и исходящий запрос менять порядок. это было непонятно

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.