を書いていない私は2つの経路を有する:symfonyのルーティング:経路()メソッドは、デフォルトのPARAM値を
を// routing.yml
foo_list:
path: /foo
defaults: { _controller:MyBundle:Foo:index }
foo_view:
path: /foo/{id}
defaults:
_controller: AlfnooBundle:Exploitant:view
id : 1
requirements:
id: \d*
最初のものは、すべてFOOSを一覧表示ページに対して、第1のどの表示ページでありますfoo nの詳細なビュー{id}。私の小枝ビューでは、私はこのようなfoo_view
へのリンクを生成します。
{{path('foo_view', {'id': foo.id})}}
id
は1
(デフォルト値)でない場合、それはOKです:/foo/12345
。しかし、id
が1
の場合、path()
メソッドは間違ったURLを生成し、id
パラメータを無視し、生成されたルートは/foo
です。 foo_view
ではなく、foo_list
です。デフォルト値を変更した場合、問題はデフォルト値です。
{{path('foo_view', {'id': 1})}} => /foo => BAD ! I want /foo/1
{{path('foo_view', {'id': 123})}} => /foo/123 => GOOD
は、どのように私はそれがデフォルト値であっても、常にPARAM値を追加するために小枝path()
方法を強制することができますか?私は嫌がらせのURLを保持したい:
/foo => foo_list
/foo/ => foo_view with id=1
/foo/12345 => foo_view with id=12345
ありがとう。
idのデフォルト値を削除しないのはなぜですか? – DOZ
@DOZ私はurl '/ foo'とurl'/foo/'のためのdistinctsアクションを必要とし、idを有効にしないで'/foo/'を(デフォルトでは1で)保持します。 –
要件を付けて、デフォルトを削除してください... @Alsatianと – Alsatian