Symfony2:如何强制路由参数不在模式中?

时间:2012-10-29 14:48:16

标签: symfony routing

我想在某些路由规则中添加参数 xyz ,但未在模式中指定此参数,如下所示:

homepage:
    pattern:   /
    defaults:  { _controller: MyBundle:Page:home, xyz: true }

contact:
    pattern:   /contact
    defaults:  { _controller: MyBundle:Page:contact }

gallery:
    pattern:   /gallery
    defaults:  { _controller: MyBundle:Page:gallery, xyz: true }

我尝试了此路由配置,但在调用主页图库网址时未发布我的参数 xyz

这是我的Twig页面(例如):

...
<a href="{{ path('gallery') }}">my test link</a>
...

结果是:

<a href="/gallery">my test link</a>

当我点击此链接时,我的 xyz 参数将被发送。

知道为什么吗?

2 个答案:

答案 0 :(得分:0)

使用attributes参数包代替 GET 一个

$request->attributes->get('xyz')

答案 1 :(得分:0)

如果您将$ xyz添加到控制器操作方法签名中,则$ xyz将存在且可访问。

public function homeAction($xyz) { // Code goes here }

public function galleryAction($xyz) { // Code goes here }