使用命令在Twig模板中的URL的域不正确

elu*_*uus 2 php symfony twig symfony-routing

在我的Symfony2项目中,我发送电子邮件,其中包含连接到我的网站的链接,例如

<a href="{{ url('login') }}">LOGIN</a>
Run Code Online (Sandbox Code Playgroud)

当我在控制器中使用此模板时,链接很好.

<a href="https://example.com/login">LOGIN</a>
Run Code Online (Sandbox Code Playgroud)

但是,如果我将这个模板用于ContainerAwareCommand带有cron的邮件,它看起来就像

<a href="http://localhost/login">LOGIN</a>
Run Code Online (Sandbox Code Playgroud)

这不好.我怎么想让它发挥作用?

Mat*_*teo 6

您应该在全局配置请求上下文,如文档如何从控制台生成URL中所述:

您可以重新定义它用作默认值的参数来更改默认主机(localhost)和scheme(http).如果Symfony未在根目录中运行,您还可以配置基本路径.

请注意,这不会影响通过普通Web请求生成的URL,因为这些会覆盖默认值.

# app/config/parameters.yml
parameters:
    router.request_context.host: example.org
    router.request_context.scheme: https
    router.request_context.base_url: my/path
Run Code Online (Sandbox Code Playgroud)

希望这个帮助

  • 这是我的朋友,一个完美的答案.非常感谢. (2认同)