有没有办法在Symfony2中获取当前具有当前端口号的URL?

时间:2016-11-08 16:47:51

标签: symfony url

Symfony 2.7中是否有一个函数返回当前端口号的当前绝对URL?

3 个答案:

答案 0 :(得分:10)

Request对象包含URI和端口。所以从控制器中你可以

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

如果您不在控制器中,请确保在您的班级中注入RequestStack,然后从主请求中获取uri和端口

$requestStack->getMasterRequest()->getUri();

答案 1 :(得分:2)

您可以在树枝模板中直接使用{{ app.request.uri }}

例如:如果当前URI为http://www.example.com:8080/page?q=test&p=2,那么{{ app.request.uri }}将返回相同的字符串。

答案 2 :(得分:2)

生成绝对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;
    ]);
}