以下路由是搜索目的,因此URL将包含关键字。我需要知道的是以一种安全的方式定义keyword
?我怎么能用yml做呢?我们都知道用户输入的关键字可以包含任何内容!
注意:我可以在下面的yml中忽略它,并在控制器中处理它,但我想知道如何在yml中完成它。
提前致谢
的routing.yml
search_result:
pattern: /search/result/{field}/{keyword}
defaults: { _controller: CarBrandBundle:Search:result }
methods: [GET]
requirements:
field: brands|cars|both
keyword: ??????????????????????????
我已经查看了Routing指南,但没有具体说明。
答案 0 :(得分:1)
您可以指定正则表达式,将输入限制为指定的模式。实际上,您的requirements.field
已经是正则表达式。
但是,您应该知道,如果输入与模式不匹配,则不会有异常,但路由不会被视为匹配。因此,捕获所有并在控制器中进行实际处理可能更好。