Symfony2请求额外的查询参数丢失

时间:2012-10-27 23:57:02

标签: symfony request

我需要使用我的路由site_edit和额外的查询参数'company'= 1。路线如下:

@Route("/_sys/site/edit/{id}", name="site_edit", defaults={"id"=null})

Symfony2生成的链接/_sys/site/edit?comp=1对我来说很合适。虽然$ _GET是数组('comp'=>'1'),但它可以点击动作,但是Request#query是空的。 如果我将查询字符串调整为/_sys/site/edit/?comp=1,则找不到匹配的路由。如果我为{id}插入一些值,例如/_sys/site/edit/new?comp=1然后一切都很好($ id =“new”和Request#query是数组('comp'=>'1')但是应用程序逻辑不能容忍这种情况我不能改变。

我需要一个结构非常相似的路由,其中​​只有一个参数comp和id存在。因此,网址需要生成为[twig] url('site_edit', {'id':positiveInteger})url('site_edit', {'comp':positiveInteger})

这是一个错误吗?恕我直言/_sys/site/edit?comp=1之前的部分?应该用{id} = null(ok)和之后的部分启动动作?应确保Request#query-get('comp')产生'1'(失败)。

1 个答案:

答案 0 :(得分:0)

怎么样?
@Route("/_sys/site/edit/{id}/comp/{comp}", name="site_edit", 
        defaults={"id"=null})

您可以为comp指定一个默认值,如果您愿意,可以将其视为emtpy。