symfony 在电子邮件模板中获取完整的URL TWIG

k5hmc34c  于 2023-03-30  发布在  其他
关注(0)|答案(2)|浏览(101)

我正在使用Symfony 6开发一个应用程序,我安装了reset-password-bundle。除了收到要求更改密码的电子邮件外,一切都运行得很好。通过“url”函数在TWIG中的重定向没有重定向到正确的url。当我点击电子邮件中的链接时,url将我发送到localhost/mypagepath/token,这给了我一个404。当我编写https://localhost:8000/mypagepath/token时,它工作了,我得到了更改密码的表单。我不明白为什么url twig函数不包括方案和端口。我正在使用symfony服务器在dev环境中运行我的应用程序。
这是twig中的一行。我没有改变这是bundle中默认的模板。

<p>To reset your password, please visit the following link</p>

<a href="{{ url('app_reset_password', {token: resetToken.token}) }}">{{ url('app_reset_password', {token: resetToken.token}) }}</a>

<p>This link will expire in {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }}.</p>

我尝试在routing.yaml文件中更改默认URI

default_uri: https://localhost:8000

它添加了https,但没有端口,所以链接仍然不起作用。
我还尝试将url函数更改为absolute_url。
提前感谢您的帮助。

gcmastyq

gcmastyq1#

下面是symfony关于你的主题的一个具体教程。https://symfonycasts.com/screencast/mailer/absolute-urls(min 3:20)
我真的建议看它,因为它完全涵盖了你的情况。
长话短说:使用{ absolute_url() }怎么样?我知道你已经尝试过了,但重要的是要了解path()url()absolute_url()之间的区别是什么。
我还建议您将更改恢复到route.yaml并重试。
Symfony正在检测请求/响应上下文之外的端口和URL。您可以使用symfony调试工具栏检查所有信息是否在正确的位置。

vi4fp9gy

vi4fp9gy2#

请写default_url而不是default_uri

相关问题