Условная маршрутизация в Symfony 4 - PullRequest
0 голосов
/ 14 февраля 2019

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

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

Объект запроса HttpFoundation имеет вид следующим образом .Он ясно заявляет «запрос» как свойство, таким образом, имея 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 Ответ

0 голосов
/ 14 февраля 2019

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

...