En Symfony, ¿cómo puedo usar el ayudante url_for en una clase?
-
13-09-2019 - |
Pregunta
Estoy construyendo una URL dentro de una clase y me gustaría ser capaz de cambiar la ruta si es necesario más adelante con sólo cambiar el archivo routing.yml.
Si tengo la ruta:
userSignup:
url: /user/signup
param: { module: user, action: signup }
¿Cómo puedo utilizar el url_for ( 'userSignup') ayudante en una clase para crear dinámicamente la URL?
Solución
No es necesario utilizar los ayudantes de vista de su acción para generar una url:
$this->generateUrl("userSignup");
El método se define en sfComponent.class.php . Esta es la forma recomendada, no es la solución hacky de la carga de los ayudantes de vista y el uso de ellos.
Otros consejos
Sólo intentado esto con 1.2 así que no puedo hablar en nombre de todas las versiones anteriores ...
Desde cualquiera de sus clases:
sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));
... entonces se puede continuar con el uso de cualquiera de las funciones definidas en el asistente de url.
debería utilizar
sfLoader::loadHelpers(array('Url'));
No debe usar sfContext::getInstance()
para recuperar el de configuración.
// instead of using
sfContext::getInstance()->getConfiguration()->loadHelpers('Url');
// use
sfApplicationConfiguration::getActive()->loadHelpers(array('Url'));