Full url path dans une variable Twig
Bonjour,
En base de données, différents contenus de mails sont stockés ('id', 'type', 'content'). Lorsqu'un mail est envoyé à l'utilisateur, dans le controller, le contenu approprié est sélectionné (en fonction du type) et est affecté à une variable transmise au template Twig. Cette variable peut contenir un lien vers une route (notamment lorsque l'utilisateur doit modifier son mot de passe).
Mon problème est que, dans ce cas, j'obtiens cette erreur lors du clic sur le lien :
Citation:
Cannot GET /email/P1ZbEPWQ/%7B%7Babsolute_url(path('security.resetting',%20%7B'id':%20mail.receiver.id,%20'token':%20mail.receiver.token%7D))%7D%7D
Par contre, si le lien est directement mis en dur dans le template (sans lire le contenu de la variable donc), tout se passe correctement.
Voici mon code
Dans le controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ...
$mail = new Mail;
$emailContent = $manager->getRepository(EmailContent::class)->findBy(array('type' => 'Password resetting email'));
$mail->setReceiver($user)
->setSubject($this->getParameter('password_Resetting_email_subject'))
->setSender($administrator)
->setMessage('Password renew')
->setBody($this->renderView(
'communication/toUserEmail.html.twig',
[
'mail' => $mail,
'content' => $emailContent[0]->getContent()
]
)
)
;
... |
En base de donnée, la valeur du champ email_content contient ceci :
Code:
1 2 3
| ...
<p><a href="{{absolute_url(path('security.resetting', {'id': mail.receiver.id, 'token': mail.receiver.token}))}}">change the password</a>.</p>
... |
Dans le template :
Code:
1 2 3 4 5 6 7
| ...
<pre>
Hello {{ mail.receiver.firstname }},
<br><br>
{{ content | raw }}
</pre>
... |
Par contre, le code suivant ne donne pas d'erreur et ouvre la bonne url :
Code:
1 2 3
| ...
<a href="{{absolute_url(path('security.resetting', {'id': mail.receiver.id, 'token': mail.receiver.token}))}}">change the password</a>.
... |
Je ne vois pas comment résoudre ce problème. Quelqu'un aurait une idée?
Merci d'avance pour votre aide.