【发布时间】:2012-10-27 23:57:01
【问题描述】:
我需要使用我的路由 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 是 array('comp'=>'1') 但这种情况是应用程序逻辑不能容忍的,我不能改变。
我需要一个结构非常相似的路由,其中恰好存在一个参数 comp 和 id。所以需要将 url 生成为 [twig] url('site_edit', {'id':positiveInteger}) 或 url('site_edit', {'comp':positiveInteger})。
这是一个错误吗?恕我直言,/_sys/site/edit?comp=1 之前的部分?应该使用 {id}=null (ok) 和之后的部分来启动操作?应确保 Request#query-get('comp') 产生 '1'(失败)。
【问题讨论】: