Я хотел бы уменьшить количество повторяющихся кодов и дать канонический URL-адрес в моем приложении Drupal 8. Поскольку система маршрутизации построена на Symfony, я включил ее в заголовок.Возможно ли построить путь Symfony, используя только параметры?
Я создаю пути по маршрутам в файле mymodule.routing.yml. Я хочу совместить указанное число различных строк в первом аргументе и slug, который может быть любой строкой во втором аргументе. Это выглядит следующим образом:
entity.my_entity.canonical:
path: '/{type}/{slug}'
defaults:
_controller: '\namespace\PostController::show'
requirements:
_permission: 'perm'
type: different|strings|that|can|match|
Теперь, когда я пытаюсь получить доступ, используя, например /match/some-slug
тогда он просто говорит: «Страница не найдена». Если я что-то статично в пути, например path: '/j/{type}/{slug}'
, то он работает как ожидается, когда я открою /j/match/some-slug
в браузере.
Мой босс не любит лишних символов в URL-адресе, поэтому я хотел бы достичь этого, используя два параметра, как показано в первом примере.
Убедитесь, что нет другого пути, который мог бы иметь конфликт с ним, потому что это можно прекрасно. – yceruto
Как я мог узнать? Будет ли он рассматриваться как конфликт, если другой путь имеет два параметра, или только если параметры имеют одно и то же имя? – littlethoughts
Используйте 'php bin/console debug: router' для отладки ваших определенных маршрутов и также проверите заказ – yceruto