@Hfnas

Как настроить роутинг в контроллере и твиге?

Есть два контроллера, необходимо, настроить роутинг:
Конттроллер Каталог
/**
     * @Route("/catalog/{parent_slug}/{slug}", name="catalog_group_sub")
     * @Route("/catalog/{slug}", name="catalog_group")
     */
    public function show(?ProductsGroup $ProductsGroup,Request $request){
}


Котроллер Товар

/**
     * @Route("/catalog/{groupSlug}/{slug}", name="catalog_product")
     */
    public function show(?Products $product, Request $request){
}


если я набираю в консоли:
php bin/console router:debug
, то это роутер каталога выше чем роутер товара, хотя в шаблоне я вызываю роутер товара :
{{ path(catalog_product { 'groupSlug' : entity.slug, 'slug': attribute(entityItem,urlParam) }, true) }}
, а перенаправление идет на роутер каталога. Почему, и как исправить? Если помянять у роутера товара на @Route("/catalog/11/{groupSlug}/{slug}", то все корректоно работает.

Вопрос, как сделать перенаправления на роутер каталога в случае вложенных подкаталогов, например, @Route("/catalog/{groupSlug}/{groupSlug1}/{groupSlug2}/{groupSlug3}/....{groupSlugN}/{slug}",
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sl0
Если помянять у роутера товара на @Route("/catalog/11/{groupSlug}/{slug}", то все корректоно работает.

Сами же и написали ответ. Зачем эта неразбериха с роутами? Если идет запрос вида /catalog/slug1/slug2, то как фреймворк должен понять какой роут ему вызывать catalog_group_sub или catalog_product? Оба подходят.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы