Условная маршрутизация в Symfony 4

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

Проще говоря, я хотел бы сопоставить маршрут с условиями с помощью аннотаций PHP. Это, конечно, требует от меня включения аннотаций и компонента языка выражений. Все отлично работает, но когда я использую query часть объекта запроса в EL (E- выражение L- языка) не работает.

Объект HttpFoundation Request выглядит следующим образом. Это ясно заявляет "запрос" как свойство, таким образом, имея query.has('key') а также query.get('key') == 'value', Это имеет как context. а также request. на этом языке, хотя запрос пуст. Когда я редактирую кеш, строка явно имеет queryParams: "v=test", Следующее должно работать без проблем, но безрезультатно.

/** @Route("/test", name="testcondition", condition="request.query.has('v') and request.query.get('v') == 'test'")

Никакой сигары. Удалите условную часть, и она работает просто отлично. Оставь .has проверьте и он перестает работать, потому что он пуст.

Что я делаю неправильно? Я полностью в курсе.

symfony/routing                     v4.2.3  Symfony Routing Component
symfony/http-foundation             v4.2.3  Symfony HttpFoundation Component
symfony/http-kernel                 v4.2.3  Symfony HttpKernel Component
symfony/expression-language         v4.2.3  Symfony ExpressionLanguage Component
sensio/framework-extra-bundle       v5.2.4  This bundle provides a way to configure your controllers with annotations

  Symfony
  Version                 4.2.3
  End of maintenance      07/2019
  End of life             01/2020

1 ответ

Можете ли вы попробовать/** @Route("/test", name="testcondition", condition="request.query.has('v') and request.query.get('v') == 'test'") вместо этого я думаю, что это вопрос цитаты

Другие вопросы по тегам