Routing in Symfony2: optionale parameter en vier urls für eine route

In meiner Symfony2-Anwendung möchte ich die vier urls möglich mit einer route:

  1. a-lot-of-other-stuff/Bericht/-20 (negative Zahl)
  2. a-lot-of-other-stuff/Bericht/40 (positive Zahl)
  3. a-lot-of-other-stuff/Bericht/(keine Nummer)
  4. a-lot-of-other-stuff/Bericht (keine Nummer und kein /)

Meine route sieht derzeit ungefähr so aus:

report:
    pattern:  /report/{days}
    defaults: { _controller: "AppReportBundle:Report:dayReport", days = null }

Die Aktion ist definiert als:

public function dayReportAction($days = null)
{
    //my code here
}

Dieser macht im Moment url 1 und 2 arbeiten, aber im Fall von url-3 und 4, erhalte ich eine Fehlermeldung

Route nicht gefunden

Wie kann ich den parameter "Tage" freiwillig?

Und wenn der parameter nicht angegeben ist, wie kann ich die / weggelassen werden, wie auch?

  • Es ist sehr merkwürdig. Da die 4. route sollte funktionieren. Ich habe oft optionalen Parameter verwenden, aber ich verwende Annotation Route definition. Ich sollte nicht definieren, Standardwerte in Anmerkungen, wenn ich definieren default-Wert in Funktion Unterschrift. Vielleicht musst du weglassen einer der Standardwerte Erklärung (zum Beispiel in der routing.yml) oder versuchen, verwenden Sie numerische oder string/bool) - Wert anstelle von null. Vielleicht hilft es ja.
  • Ihre route config sollten sein: defaults: { _controller: "AppReportBundle:Report:dayReport", days: null }
InformationsquelleAutor Paul Maclean | 2013-06-12
Schreibe einen Kommentar