我怎样才能获得symfony的绝对路径网址

use*_*013 4 php symfony symfony-2.3

我正在使用symfony,我想得到一个特定的网址route,我route是这样的

project_sign_in:
    pattern:  /signin
    defaults: { _controller: ProjectContactBundle:User:signIn }
Run Code Online (Sandbox Code Playgroud)

我想从这条路线生成网址,所以我可以得到

localhost/app_dev.php/signin 要么 {SERVER-ADDRESS}/app_dev/signin

如果我在浏览服务器

Víc*_*tán 8

在 Symfony 5.0 中,如果您在服务中使用路由:

namespace App\Service;

use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
.
.
.
private $router;

public function __construct(UrlGeneratorInterface $router)
{
    $this->router = $router;
}

public function foo()
{
    $this->router->generate('bar', [], urlGeneratorInterface::ABSOLUTE_URL);
}
Run Code Online (Sandbox Code Playgroud)


got*_*oto 5

最后一个兼性参数必须为true才能生成绝对URL:

$router->generate('project_sign_in', array(), true);
Run Code Online (Sandbox Code Playgroud)

在树枝上:

{{ path('project_sign_in', {}, true) }}
{# or #}
{{ url('project_sign_in') }}
Run Code Online (Sandbox Code Playgroud)

在控制器中:

$this->generateUrl('project_sign_in', array(), true );
Run Code Online (Sandbox Code Playgroud)


Mic*_* B. 5

在版本4.0中使用路由组件:

<?php
use Symfony\Component\Routing\Generator\UrlGenerator;

UrlGenerator->generate('project_sign_in', [], UrlGenerator::ABSOLUTE_URL);
Run Code Online (Sandbox Code Playgroud)