web-dev-qa-db-fra.com

Est-il possible d'obtenir l'URL actuelle avec le numéro de port actuel dans Symfony2?

Existe-t-il une fonction dans Symfony 2.7 qui renvoie l'URL absolue actuelle avec le numéro de port actuel? 

6
Zug Zwang

Générer une URL absolue devrait inclure le port.

use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
...

public function indexAction(Request $request)
{
    $link = $this->generateUrl(
        'route_name', [
            'route'=>'params'
        ],
        UrlGeneratorInterface::ABSOLUTE_URL
    );

    return $this->render('template', [
        'link' => $link;
    ]);
}
2
Chase

L'objet Request contient à la fois l'URI et le port. Donc, à partir d'un contrôleur, vous pouvez

public function indexAction(Request $request)
{
    $uri = $request->getUri();
    $port = $request->getPort();
}

Si vous n'êtes pas dans un contrôleur, assurez-vous d'injecter la RequestStack dans votre classe, puis récupérez l'URI et le port de la requête maître.

$requestStack->getMasterRequest()->getUri();
9
simon.ro

Vous pouvez directement utiliser {{ app.request.uri }} dans votre modèle de brindille.

Ex: si l'URI actuel est http://www.example.com:8080/page?q=test&p=2 then {{ app.request.uri }} renverra la même chaîne.

2
Tsounabe