我有以下路线定义
my_route:
path: /actual-path/
defaults:
_controller: MyBundle:MyController:detail
id: application_id
requirements:
methods: GET
id: \d+
控制器需要一个名为 的参数$id
。
但我不想$id
在 url 中使用,我想使用一个可用的值$request->attributes->get('application_id')
有一个监听器会在路由过程之前将两个参数(application_id
和application
)作为属性注入到请求对象中,所以这个值就在那里。(也很容易将其注入RequestContext
)。
有没有办法可以在路由中使用Request
or对象的属性值作为默认值?RequestContext
现在我可以简单地$request->attributes->get('application_id')
在我的控制器中做。但是这个控制器会在几种情况下使用。在其他情况下$id
,将通过 url 传递。我发现在路由中设置 id 比在控制器中的某处构建 if-else 子句更干净。