我在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"现在可以生成预期的链接。