#symfony #url #character-encoding #twig #urlencode
#symfony #url #кодировка символов #twig #urlencode
Вопрос:
У меня есть условие, при котором пользователь должен быть подтвержден ссылкой, полученной по почте. У меня есть некоторые данные url_encode, отредактированные в URL, которые я добавляю к url
Фактический URL-адрес — link this
mysite.net/register/api/login?returnTo=/register/verify-my-email?key=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8amp;value=NXJWL3H8LDSHBFJSDHBFJSHD876816YP9P9KJ71O2BQFKZUAIKTFMV2L3Samp;lang=en-US
Я хочу, чтобы часть returnTo была отредактирована url_encode, чтобы пользователь сначала вошел в систему. Я попытался использовать это в ветке шаблона электронной почты
{% 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-адрес при обращении сначала переходит к login, но после входа в систему URL-адрес становится link this
mysite.net/register/api/%2Fregistration%2Fverify-my-email%3Fkey=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8
Регистр / api / login не заменяется должным образом на register / verify-my-email, а также более поздние параметры url_encode ed не добавляются должным образом
Я хочу, чтобы URL-адрес был таким, как показано ниже, после входа в систему
mysite.net/register/verify-my-email?key=AC26HBASJDHBJHABSDJH683746F7BE3C3B816DB8ABD1FE1B8amp;value=NXJWL3H8LDSHBFJSDHBFJSHD876816YP9P9KJ71O2BQFKZUAIKTFMV2L3Samp;lang=en-US
Может ли кто-нибудь помочь мне в этом, поскольку я новичок в дизайне шаблонов twig и email?
Комментарии:
1. Лучше всего выполнять все ваши манипуляции с данными в вашем PHP-коде, а затем передавать эти измененные значения в twig.
2. @AndyPreston ну, не совсем, вот почему у вас есть фильтры в twig
3. @DarkBee Что именно я здесь делаю не так?
4. применяйте только
url_encode
параметры
Ответ №1:
Эта проблема была решена следующим решением
{% 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 %}