Я новичок в Symfony и пишу плагин для системы электронной коммерции Sylius: каждый маршрут до сих пор давал мне два объекта в RequestStack, и я мог получить очень конкретную переменную везде через тот, который я извлекалчерез $ requestStack-> getMasterRequest ().
В конкретном маршруте переменная (заданная в файле yaml, в которой настроены маршруты) внезапно не может быть извлечена, и $ requestStack не содержит два объекта, только один.
Я извиняюсь,Я знаю, что это очень плохо объяснено, я надеюсь, что кто-то может разобраться в этом.
Я пытался $ request = Request :: createFromGlobals () и получал Контейнер вместо RequestStack напрямую, но оба заканчивали стот же результат.
# This is the route I am trying to overwrite because I want to give it an extra parameter from the request:
sylius_shop_product_show:
path: /products/{slug}
methods: [GET]
defaults:
_controller: sylius.controller.product:showAction
_sylius:
template: "@SyliusShop/Product/show.html.twig"
repository:
method: findOneByChannelAndSlug_andVarFromRequest
arguments:
- "expr:service('sylius.context.channel').getChannel()"
- "expr:service('sylius.context.locale').getLocaleCode()"
- $slug
- "expr:service('request_stack')"
//This is the function which should be used, it is part of a Repository
public function findOneByChannelAndSlug_andVarFromRequest(ChannelInterface $channel, string $locale, string $slug, RequestStack $requestStack): ?ProductInterface
{
Я не понимаю, почему вдруг я не могу удержать переменную, к которой я могу получить доступ через все другие маршруты.Потому что это хранилище?Запрос еще не полностью обработан?