Php 如何使用symfony获取路由的绝对url
我正在使用symfony,我想获取特定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
路线的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)使用4.0版的路由组件编码>:
<?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的答案