我需要使用我的路由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'(失败)。
答案 0 :(得分:0)
怎么样?
@Route("/_sys/site/edit/{id}/comp/{comp}", name="site_edit",
defaults={"id"=null})
您可以为comp指定一个默认值,如果您愿意,可以将其视为emtpy。