Ich habe zwei Routen schreiben:Symfony-Routing: Pfad() -Methode nicht Standard-param Wert
// 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*
Die erste für eine Seite, die die foos alle Listen, die zweite ist die Seite, die Anzeige eine detaillierte Ansicht von foo n. {Ich würde}. In meinem Zweig Ansicht, erzeuge ich den Link zu foo_view
wie folgt aus:
{{path('foo_view', {'id': foo.id})}}
Es ist in Ordnung, wenn id
nicht 1
ist (der Standardwert): /foo/12345
. Aber wenn id
1
ist, erzeugt die path()
Methode eine falsche URL, es gibt den id
Parameter aus, und die generierte Route ist: /foo
. Was ist nicht foo_view
, aber foo_list
. Wenn ich den Standardwert ändere, ist das Problem der Standardwert.
{{path('foo_view', {'id': 1})}} => /foo => BAD ! I want /foo/1
{{path('foo_view', {'id': 123})}} => /foo/123 => GOOD
So wie kann ich zwingen Zweig path()
Methoden, um immer den param Wert hinzufügen, auch wenn es der Standardwert ist? Ich möchte die URLs für:
/foo => foo_list
/foo/ => foo_view with id=1
/foo/12345 => foo_view with id=12345
Vielen Dank.
Warum nicht diesen Standardwert für ID entfernen? – DOZ
@DOZ Weil ich Aktionen für die URL '/ foo'und die URL'/foo/'unterscheiden möchte und'/foo/'ohne gültige ID (mit 1 standardmäßig) beibehalten soll. –
Lassen Sie die Anforderung, und entfernen Sie die Standard ... – Alsatian