Frage

Verwendung des Zend Framework und der URL-Methode für die Ansicht:

$this->url(array('field1' => this, 'field2' => 'is', 'field3' => 'my example'), 'route_name');

Dabei ist Routenname der Name der URL-Route und jede Feldnummer wird aus der Datenbank abgerufen.

Mir ist aufgefallen, dass Leerzeichen in Controller-/Aktionsnamen standardmäßig in Pluszeichen umgewandelt werden, sodass Folgendes aussieht:

www.example.com/this is my example

Zu

www.example.com/this+is+my+example

Ich würde gerne das Trennzeichen von + auf - ändern, um so etwas zu haben

www.example.com/this-is-my-example

Ich kenne einen anderen Thread: Wie ändere ich das Trennzeichen der Zend-URL?wie dokumentiert eine Möglichkeit, dies zu tun, die ich erfolglos ausprobiert habe.

Eine ausführliche Erklärung, wie das geht, wäre sehr dankbar.

EDIT2:Wenn es jemanden interessiert, weiß ich, wo das Problem liegt. Es kommt von der Art und Weise, wie die URL zusammengesetzt ist. Sie verwendet URL-Code, der alle nicht alphanumerischen Zeichen konvertiert, außer _ und die Leerzeichen als +. Es gibt keine Möglichkeit, das zu überschreiben, außer es zu ersetzen Der Charakter erstellt die URL manuell (wie Maxime vorgeschlagen hat) oder erstellt eine benutzerdefinierte URL-Funktion, die die Zeichen ersetzt (wie von Aporat vorgeschlagen) ...

Danke!

War es hilfreich?

Lösung

Wenn Sie dies wirklich tun möchten, können Sie den Stockgenehmigungshelfer erweitern und Ihre URL-Logik in Ihre View-Helfer hinzufügen.

generasacodicetagpre.

und lade dann einfach deinen neuen View-Helfer und du bist gut zu gehen:

generasacodicetagpre.

Andere Tipps

Leider kann man vor dem Aufruf des nichts einstellen url(...) Funktion, um das zu erreichen, was Sie tun möchten.Der Grund dafür ist, dass beim Zusammenstellen der URL PHP verwendet wird urlencode(...) Funktion.

Dennoch haben Sie noch viele Möglichkeiten:

1) Sie nutzen das einfach nicht url(...) Funktion und erstellen Sie Ihre URLs manuell.(Beste Option)

2) Sie erstellen einen neuen Helfer, der sich wie folgt verhält url(...) Fügen Sie jedoch zusätzliche Änderungen an der Funktion hinzu, um das zu erreichen, was Sie tun möchten.

3) Sie nehmen die Ausgabe der Funktion url(...) und führen Folgendes aus: str_replace wechseln + mit -.(Ich empfehle diese Option NICHT)

Ich persönlich erstelle alle meine URLs manuell, um solche Probleme zu vermeiden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top