Symfony为使用cron任务发送的树枝呈现电子邮件生成链接



我在Symfony 上用树枝渲染的电子邮件中生成路径时遇到了一些问题

以下是我正在做的

<a href="{{ domain_parameter ~ path('news_homepage') }}"> My Link </a>

关于参数。yml

domain_parameter: http://mydomain.com

在路由上

news_homepage:
    pattern:  /news
    defaults: { _controller: newsBundle:News:index }

然后我用cron任务发送电子邮件

在这样做的时候,我希望得到这样的网址:

http://mydomain.com/news

但我得到了这个:

http://mydomain.com/website.com/web/app.php/news

如果我使用"url"而不是"path",结果将是:

http://localhost/var/www/website.com/web/app.php/news

你知道我该如何让它按预期工作吗?提前感谢

你的链接中不应该有web/app.php,所以你可能想更改你的htaccess

如果你想在那里"拥有合适的域",你可以尝试|替换为:

{{ path('news_homepage')|replace({'website.com': domain_parameter}) }}

此外,path()应该只提供/news,因此您的配置似乎有问题

Javad的解决方案是更好的解决方案。

我最终制作了命令类,而不是用HTTP请求调用的控制器。

为了在每个命令上都有一个请求上下文,我指定如下:

$requestCtx = $container->get('router')->getContext();
$requestCtx->setHost($container->getParameter('app_domain'));
$requestCtx->setBaseUrl('');
$requestCtx->setScheme('http');

我还用"url"替换了所有的"路径"函数(来自我用来生成电子邮件的树枝模板),由于指定的上下文,"url"现在可以生成预期的链接。

最新更新