Symfony2:控制器中动作/路由的完整路径

Posted

技术标签:

【中文标题】Symfony2:控制器中动作/路由的完整路径【英文标题】:Symfony2: Full path to action/route in a controller 【发布时间】:2012-11-01 01:24:16 【问题描述】:

我需要控制器内部操作的完整路径,以便通过电子邮件发送。我怎样才能从我的控制器内部实现 path('_route') 之类的东西,而不是完整路径?

【问题讨论】:

【参考方案1】:

如果您想要本地路径,Juan 的回答是正确的。绝对路径(有助于通过电子邮件发送)需要额外的参数:

$url = $this->generateUrl('your_route_name', array(), true);

第三个参数表示要生成绝对路径。

如果您想在视图中使用此 URL,只需将 $url 添加到操作中的响应数组并使用它。

【讨论】:

其实,要在 Twig 中生成绝对 URL,请使用 url() 函数而不是 path() 我与 TRUE 一起使用,它只在我的本地工作,但不能在远程服务器上工作,所以我将第三个参数更改为 UrlGeneratorInterface::ABSOLUTE_URL,如本 asnwer ***.com/a/38823820/4380588 中给出的那样,现在它正在工作本地和远程服务器【参考方案2】:

Symfony 3+

use Symfony\Component\Routing\Generator\UrlGeneratorInterface;

$this->generateUrl('your_route_name', array('/* your route parameters */'), UrlGeneratorInterface::ABSOLUTE_URL);

【讨论】:

谢谢,这是最新的解决方案。【参考方案3】:

尝试以下方法:

$url = $this->generateUrl('your_route_name');

【讨论】:

以上是关于Symfony2:控制器中动作/路由的完整路径的主要内容,如果未能解决你的问题,请参考以下文章

如何在Symfony2中获取控制器的所有路由列表?

symfony2 控制器的功能测试:如何生成路由

找不到 Symfony2 突然登录路径

如何在 Symfony2 中获取控制器的所有路由列表?

获取当前操作的完整路径

symfony2 获取路由参数(控制器参数与请求)