【发布时间】:2016-06-30 11:02:48
【问题描述】:
首先感谢您的阅读。我遇到了 Symfony 路由的问题。我有一个接收多个参数的路由:
my_route:
path: /route/{page}/{paramA}/{paramB}/{paramC}
defaults: { _controller: MyBundle:MyController:index, page: null, paramA: null, paramB: null, paramC: null }
问题在于“参数”。它是一个过滤结果的文本,它可以不设置,但“paramB”和“paramC”可以。
所以我需要这条路线来处理例如:
/route/1/paramB/paramC
并在控制器中接收:
paramA = null, paramB="paramB", paramC="paramC"
现在当我处理:
/route/1/paramB/paramC
我在控制器中得到了这个:
paramA="paramB", paramB="paramC", paramC=null
欢迎任何帮助。再次感谢。
【问题讨论】:
-
我不知道你是如何设想的。当你写 URL 的时候你可能知道哪个参数应该是哪个,但是接收请求的 Symfony 控制器怎么知道呢?您必须选择不同的默认值,并相应地填写 URL。
-
我知道当我写 url 时参数是 wich。问题是当它是文本并且它是空的时它没有写,例如: 过滤的用户类型:/route/1/textToFind/paramB/paramC 没有问题,我知道“textToFind”是paramA。但是如果他/她只通过 paramB 和 paramC 过滤,那么路由是: /route/paramB/paramC paramB 的值存储在 paramA 中。这是我尽量避免的。
标签: php symfony routes optional-parameters