Dans Symfony, comment puis-je utiliser l'aide de url_for dans une classe?
-
13-09-2019 - |
Question
Je construis une URL à l'intérieur d'une classe et je voudrais être en mesure de changer le routage si nécessaire par la suite en changeant simplement le fichier routing.yml.
Si j'ai la route:
userSignup:
url: /user/signup
param: { module: user, action: signup }
Comment puis-je utiliser le url_for ( 'userSignup') aide dans une classe pour créer dynamiquement l'URL?
La solution
Vous n'avez pas besoin d'utiliser les aides de vue dans votre action pour générer une URL:
$this->generateUrl("userSignup");
Le procédé est défini dans la sfComponent.class.php . Ceci est la méthode recommandée, pas la solution de contournement hacky de chargement des aides de vue et de les utiliser.
Autres conseils
Je n'essayé avec 1,2 donc je ne peux pas parler pour toutes les versions précédentes ...
De l'un de vos cours:
sfContext::getInstance()->getConfiguration()->loadHelpers(array('Url'));
... vous pouvez continuer en utilisant l'une des fonctions définies dans l'assistant url.
vous devez utiliser
sfLoader::loadHelpers(array('Url'));