4 Stimmen

Unterstrich als segment_separators in routing.yml

In Symfony-Projekt möchte ich einen Unterstrich als Trennzeichen für den Parameter in der routing.yml verwenden.

Beispiel-URL: /article/lorem-1111_45.html

In routing.yml

rule_sample:
 url:      /article/:info-:datePublished_:id.html
 param:    { module: cms, action: test }
 options:
   segment_separators: ['-', '/', '.', '_']
 requirements:
   info: ^([A-Za-z0-9\-]+)$
   datePublished: \d+
   id: \d+

Dieser Code funktioniert nicht. Ich habe den folgenden Fehler: Kann die Route "/article/:info-:datePublished_:id.html" in der Nähe von ":id.html" nicht parsen.

Weiß jemand, wie man diese Regel umsetzen kann?

1voto

Alex Punkte 11

Ich denke, es handelt sich um einen Fehler in sfRoute.class.php. Die Zeile 683: 'variable_regex' => '[\w\d_]+'

In PHP bedeutet \w "Passt zu beliebigen alphanumerischen Zeichen inklusive Unterstrich (_)" und der letzte Unterstrich passt zum selben. Ich habe versucht, diese Zeile zu ändern in: 'variable_regex' => '[\A-Za-z\d]+'

Und jetzt kann ich den Unterstrich als Trennzeichen verwenden.

Ich habe das noch nicht ausführlich getestet. Ich weiß nicht, ob dadurch andere Funktionen abstürzen (sicherlich), aber vielleicht ist dies die Zeile, an der die Symfony-Programmierer diesen Fehler beheben können.

0voto

johnwards Punkte 1871

Ich glaube, dies ist ein Fehler in Symfony.

Ich habe einen Test gemacht, der fehlgeschlagen ist, und einen Fehlerbericht mit dem Test an das Symfony-Projekt geschickt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X