Условная маршрутизация в 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'")
вместо этого я думаю, что это вопрос цитаты