Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用symfony获取路由的绝对url_Php_Symfony_Symfony 2.3 - Fatal编程技术网

Php 如何使用symfony获取路由的绝对url

Php 如何使用symfony获取路由的绝对url,php,symfony,symfony-2.3,Php,Symfony,Symfony 2.3,我正在使用symfony,我想获取特定路线的url, 我的路线是这样的 project_sign_in: pattern: /signin defaults: { _controller: ProjectContactBundle:User:signIn } 我想从这个路由生成url,这样我就可以 localhost/app\u dev.php/signin 或{SERVER-ADDRESS}/app_dev/signin 如果我正在浏览服务器。最后一个临时参数必须为true

我正在使用symfony,我想获取特定
路线的url
, 我的
路线是这样的

project_sign_in:
    pattern:  /signin
    defaults: { _controller: ProjectContactBundle:User:signIn }
我想从这个路由生成url,这样我就可以

localhost/app\u dev.php/signin
{SERVER-ADDRESS}/app_dev/signin


如果我正在浏览服务器。

最后一个临时参数必须为true才能生成绝对url:

$router->generate('project_sign_in', array(), true);
细枝:

{{ path('project_sign_in', {}, true) }}
{# or #}
{{ url('project_sign_in') }}
在控制器中:

$this->generateUrl('project_sign_in', array(), true );
编辑:有关symfony 4,请参见@Michael B。答案

UrlGenerator->generate('project\u sign\u in',[],UrlGenerator::ABSOLUTE\u URL)

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

UrlGenerator->generate('project_sign_in', [], UrlGenerator::ABSOLUTE_URL);

在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);
}

这回答了你的问题吗?工作完美@从symfony 4开始,goto solutions对我不起作用,请参阅@MiachalB的答案