Domanda

Sto costruendo un URL all'interno di una classe e mi piacerebbe essere in grado di modificare il percorso, se necessario, in seguito, semplicemente cambiando il file routing.yml.

Se ho il percorso:

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

Come posso utilizzare il url_for ( 'userSignup') aiutante in una classe per creare dinamicamente l'URL?

È stato utile?

Soluzione

Non è necessario utilizzare le guide vista nella vostra azione per generare un URL:

$this->generateUrl("userSignup");

Il metodo è definito nella sfComponent.class.php . Questo è il metodo consigliato, non è la soluzione hacky di caricare i aiutanti vista e il loro utilizzo.

Altri suggerimenti

Ho provato solo questo con 1.2, quindi non posso parlare per tutte le versioni precedenti ...

Da qualsiasi delle classi:

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

... allora si può continuare con l'utilizzo di una qualsiasi delle funzioni definite nel URL Helper.

si dovrebbe usare

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

Non si deve usare sfContext::getInstance() per recuperare il configurazione.

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

// use 
sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top