Symfony многоядерность?

Коллеги, добрый день.
Вопрос адресован знатокам Symfony

Имею 2 одинаковых контроллера, но с разным окружением.
Так же в проекте реализована многоядерность.

Но имеется не приятная особенность.

admin.food.local/product.get
api.food.local/product.get

В зависимости от вызова соответствующего адреса, вызывается соответствующий контроллер.
/product.get", name="product_get" если не задавать name роутера -- роутер окружения admin
/product.get", name="product_get" если не задавать name роутера -- роутер окружения api

По какой-то причине, вызваться контроллер только окружения api
Но если не задавать параметр name, то проблемы не наблюдается.

На что влияет параметр name?

5d8a061d7ecbe270515557.jpeg
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
Каждый роут должен быть уникален. уникальность роута задается, собственно, параметром name. Если вы его не указываете name генерируется автоматически из имени контроллера и имени экшна. Если вы в проекте указываете два экшна с одинаковым именем роута, у вас всегда сработает тот, который объявлен первым/последним (тут точно не помню).

Назовите роуты api_product_get и admin_product_get
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
tommy-vercetti
@tommy-vercetti
Symfony/Golang
name параметр используется для генерации урлов.
Например, у нас есть детальная страница товара @Route("/products/{id}", name="product_detail").
На странице списка товаров для того, чтобы сгенерить ссылку на товар в twig-шаблоне генерим урл {{ path('product_detail', {'id': product.id}) }}. При смене урла код шаблонов менять не придется.

Как быть с поддоменами в доке есть инфа https://symfony.com/doc/current/routing.html#sub-d...
Ответ написан
Ваш ответ на вопрос

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

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