97 votes

Obtenir l'URL de base du site Web et le transmettre globalement à twig dans Symfony 2

Je suis en train de passer de CodeIgniter à Symfony 2. Quelqu'un peut-il me donner un exemple illustrant comment:

  • Obtenir l'URL de base (l'URL sans les pièces spécifiques à l'itinéraire)
  • Passez globalement cette variable au groupe de brindilles afin que je puisse l'utiliser dans chaque modèle.

146voto

codecowboy Points 1634

Ceci est maintenant disponible gratuitement dans les modèles de brindille (testé sur la version 2.0.14 de sf2)

 {{ app.request.getBaseURL() }}
 

96voto

Damien Points 3590

Pourquoi avez-vous besoin de cette URL racine? Ne pouvez-vous pas générer directement des URL absolues?

 {{ url('_demo_hello', { 'name': 'Thomas' }) }}
 

Ce code Twig générera l'intégralité de l'adresse http: // url vers la route _demo_hello.

En fait, obtenir l'URL de base du site Web, c'est obtenir uniquement l'URL complète de la route de la page d'accueil:

 {{ url('homepage') }}
 

( page d'accueil , ou ce que vous appelez dans votre fichier de routage).

60voto

hugomn Points 410

Vous pouvez utiliser la nouvelle méthode de demande getSchemeAndHttpHost() :

 {{ app.request.getSchemeAndHttpHost() }}
 

36voto

sumanchalki Points 1035

L'URL de base est défini à l'intérieur de Symfony\Component\Routing\RequestContext .

Il peut être récupéré depuis le contrôleur comme ceci:

 $this->container->get('router')->getContext()->getBaseUrl()
 

16voto

user3869574 Points 1
  <base href="{{ app.request.getSchemeAndHttpHost() }}"/>
 

ou du contrôleur

 $this->container->get('router')->getContext()->getSchemeAndHttpHost()
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X