web-dev-qa-db-ja.com

Symfony2で現在のポート番号で現在のURLを取得する方法はありますか?

Symfony 2.7には、現在のポート番号で現在の絶対URLを返す関数がありますか?

7
Zug Zwang

絶対URLの生成にはポートを含める必要があります。

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

Requestオブジェクトは、URIとポートの両方を保持します。コントローラー内から次のことができます

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

コントローラーにいない場合は、クラスにRequestStackをインジェクトしてから、マスター要求からuriとポートをフェッチしてください。

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

twigテンプレートで{{ app.request.uri }}を直接使用できます。

例:現在のURIが http://www.example.com:8080/page?q=test&p=2 の場合、{{ app.request.uri }}は同じ文字列を返します。

2
Tsounabe