繁体   English   中英

有关Symfony2路由组件使用的疑问

[英]Doubts around Symfony2 Routing component usage

我正在设置FOSRestBundle,并且有一些疑问,不知道是否与Symfony2 Routing组件有关,或者可以通过其他任何方式完成。 这里,

1)在执行该方法之前,如何检查请求标头上是否设置了X-PDONE-SESSION-ID 可以使用路由注释来完成此操作吗? 关于如何检查的任何想法?

2)我需要使用此RegEx \\b(?:(?:https?):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|] @QueryParam(name="token", requirements="") \\b(?:(?:https?):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|] @QueryParam(name="token", requirements="") \\b(?:(?:https?):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]作为@QueryParam(name="token", requirements="")路由中的requirements ,用于检查有效的URL,如何?

我在这里这里都读过,但对您毫无帮助。

(1)可以使用您所引用的书中没有帮助的方法中描述的方法来完成:

如您所见,可以创建一条路由以仅匹配某些路由通配符(通过正则表达式),HTTP方法或主机名。 但是使用条件可以将路由系统扩展为具有几乎无限的灵活性:

联系人:路径:/ contact默认值:{_controller:AcmeDemoBundle:Main:contact}条件:“ ['GET','HEAD']和request.headers.get('User-Agent')中的context.getMethod()匹配' /火狐/ I'”

条件是一个表达式,您可以在此处了解更多有关其语法的信息: 表达式语法 这样,除非HTTP方法是GET或HEAD并且User-Agent标头与firefox匹配,否则路由将不匹配。


在(2)中,您将显示一个用于完整URL的正则表达式,而不仅仅是查询参数。 据我所知,默认情况下不可能更改路由组件使用的整个正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM