Frage

Ich baue eine URL innerhalb einer Klasse, und ich möchte in der Lage sein, später das Routing bei Bedarf zu ändern, indem nur die routing.yml Datei zu ändern.

Wenn ich die Strecke:

userSignup:
  url:   /user/signup
  param: { module: user, action: signup }

Wie kann ich die url_for ( 'userSignup') Helfer in einer Klasse, um dynamisch die URL zu erstellen?

War es hilfreich?

Lösung

Sie brauchen nicht die Ansicht Helfer in Ihrer Aktion zu verwenden, um eine URL zu erstellen:

$this->generateUrl("userSignup");

Das Verfahren ist definiert in sfComponent.class.php . Dies ist der empfohlene Weg, nicht die Hacky Abhilfe der Ansicht Helfer des Ladens und Verwendung.

Andere Tipps

Ich habe versucht, dies nur mit 1.2, so kann ich nicht alle früheren Versionen sprechen ...

Von jedem Ihrer Klassen:

sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));

... dann können Sie auch weiterhin mit in der URL-Helfer definiert eine der Funktionen verwendet wird.

Sie verwenden sollten,

sfLoader::loadHelpers(array('Url'));

Sie sollten nicht verwenden sfContext::getInstance() die zum Abrufen Konfiguration.

// instead of using
sfContext::getInstance()->getConfiguration()->loadHelpers('Url');

// use 
sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top