簡體   English   中英

Symfony4無法在電子郵件中提供路由所需的令牌

[英]Symfony4 can't give token needed for route in email

我正在嘗試通過電子郵件重設密碼,但出現以下錯誤: An exception has been thrown during the rendering of a template ("Some mandatory parameters are missing ("token") to generate a URL for route "resetPassword".").

這是我的控制器的郵件部分:

$message = (new \Swift_Message('Reinitialisez votre mot de passe'))
                //put the email adress you defined in .env.local here
                ->setFrom('myEmail@gmail.com')
                ->setTo($formEmail)
                ->setBody(
                    $this->renderView(
                        'emails/emailResetPassword.html.twig',
                        [
                            'name' => $name,
                            'token' => $token,
                        ]
                    ),
                    'text/html'
                );

            $mailer->send($message);

這是郵件視圖:

<h1>Une demande de reinitialisation de mot de passe a été éffectuée</h1>

<p>Bonjour {{ name }}, cliquez <a href="{{ path('resetPassword') }}">ici</a> si vous avez demandé à réinitialiser votre mot de passe,
sinon vous pouvez ignorer ce email.</p>
<br>
<small>L'équipe.</small>

resetPassword是以下路線:

/**
 * @Route("/changer-mot-de-passe/{token}", name="resetPassword")
 */

我認為問題在於Symfony不了解'token'=> $ token是我的路線上的{token}。 但是我不知道如何解決我的問題。

謝謝你的幫助 :)

如果您不提供,Symfony不知道使用什么令牌。

您可以將參數傳遞給path()函數,因此您的代碼應為:

<p>Bonjour {{ name }}, cliquez <a href="{{ path('resetPassword', {'token': token}) }}">ici</a> si vous avez demandé à réinitialiser votre mot de passe,
sinon vous pouvez ignorer ce email.</p>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM