Symfony 如何在小树枝中使用url_编码和returnTo

Symfony 如何在小树枝中使用url_编码和returnTo,symfony,url,character-encoding,twig,urlencode,Symfony,Url,Character Encoding,Twig,Urlencode,我有一个条件,即用户必须通过邮件中收到的链接进行验证。我在url中添加了一些url编码数据 实际的url是这个链接 mysite.net/register/api/login?returnTo=/register/verify my email?key=ac26hbasjdbjhhabsdjh683746f7be3c3b816db8abd1fe1b8&value=nxjwl3h8ldshbfjsdhbfjshd8716yp9p9kj71o2bqfkzuaiktfmv2l3s&lang=en-US

我有一个条件,即用户必须通过邮件中收到的链接进行验证。我在url中添加了一些url编码数据

实际的url是这个链接

mysite.net/register/api/login?returnTo=/register/verify my email?key=ac26hbasjdbjhhabsdjh683746f7be3c3b816db8abd1fe1b8&value=nxjwl3h8ldshbfjsdhbfjshd8716yp9p9kj71o2bqfkzuaiktfmv2l3s&lang=en-US

我希望returnTo部分是url_编码的,以便用户首先登录。我试着在电子邮件模板中使用它

{% set siteUrl = 'mysite.net' %}
{% set returnToPath = '/register/verify-my-email'|url_encode %}

{% set verifyMyEmailUrl = siteUrl ~ "/register/api/login?returnTo=" ~ returnToPath ~ "?" ~ {
    'key': script.TOKEN_KEY,
    'value': script.TOKEN_VALUE,
    'lang': script.PREFERRED_LANG,
}|url_encode %}
访问时的url首先进入登录,但登录后,url变成此链接

mysite.net/register/api/%252f注册%252f验证我的电子邮件%253Fkey=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8

register/api/login没有被register/verify my email正确替换,而且后面的url编码参数也没有正确附加

我想在登录后的url如下所示

mysite.net/register/verify my email?key=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8&value=NXJWL3H8LDSHBFJSDHBFJSHD876816YP9P9KJ71O2BQFKZUAIKTFMV2L3S&lang=en-US


有人能在这方面帮我吗,因为我对细枝和电子邮件模板设计一无所知。

此问题通过以下解决方案解决

{% set siteUrl = 'mysite.net' %}
{% set registerVerifyEmailRedirectUrl = '/register/verify-my-email?' ~ {
    key: scriptData.TOKEN_KEY,
    value: scriptData.TOKEN_VALUE,
    lng: scriptData.PREFERRED_LANG,
}|url_encode %}

{% set encodedVerifyMyEmailUrl = siteUrl ~ "/register/api/login?returnTo=" ~ registerVerifyEmailRedirectUrl|url_encode %}

最好在PHP代码中执行所有数据操作,然后将这些操作后的值传递给twig。@AndyPreston不完全正确,这就是为什么在PHP代码中有过滤器twig@DarkBee我到底做错了什么?只应用
url\u encode
参数