使用Symfony杰出人物留下的文档,我想在传递特定查询字符串时匹配一条路由。我已经调试了它到死,但是似乎它不是要以这种方式工作,尽管我无法解释,但是应该从docs开始工作。
简而言之,我想通过PHP注释将路由与条件匹配。当然,这需要我启用注释和“表达式语言”组件。一切都很正常,但是当我在EL( E xpression L anguage)中使用请求对象的query
部分时,它将无法正常工作。
HttpFoundation请求对象为as follows。显然将“查询”声明为属性,因此具有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
答案 0 :(得分:0)
可以请您尝试
/** @Route("/test", name="testcondition", condition="request.query.has('v') and request.query.get('v') == 'test'")
相反,我认为这是报价问题