0

site_edit追加のクエリ パラメータ 'company'=1 でルートを使用する必要があります。ルートは次のとおりです。

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

Symfony2 は、/_sys/site/edit?comp=1私にとって問題ないように見えるリンクを生成します。$_GET は array('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' (失敗) になるようにする必要があります。

4

1 に答える 1

0

どうですか

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

comp にデフォルト値を割り当てて、必要に応じて空として扱うことができます。

于 2012-10-28T05:41:03.417 に答える