In Symfony, come posso usare l'helper url_for in una classe?
-
13-09-2019 - |
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?
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'));