Symfony 2.7には、現在のポート番号で現在の絶対URLを返す関数がありますか?
絶対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;
]);
}
Request
オブジェクトは、URIとポートの両方を保持します。コントローラー内から次のことができます
public function indexAction(Request $request)
{
$uri = $request->getUri();
$port = $request->getPort();
}
コントローラーにいない場合は、クラスにRequestStack
をインジェクトしてから、マスター要求からuriとポートをフェッチしてください。
$requestStack->getMasterRequest()->getUri();
twigテンプレートで{{ app.request.uri }}
を直接使用できます。
例:現在のURIが http://www.example.com:8080/page?q=test&p=2 の場合、{{ app.request.uri }}
は同じ文字列を返します。