Symfony 无法猜测如何从参数“的请求信息”中获取条令实例;“类”;

Symfony 无法猜测如何从参数“的请求信息”中获取条令实例;“类”;,symfony,symfony4,Symfony,Symfony4,我正试图发送一封带有令牌的电子邮件,以便重新发送自动密码。但在我看来,我正在检索以下错误: /** * @Route("/forget-email/", name="forget", methods="GET|POST") */ public function emailrestore(Request $request, User $user, \Swift_Mailer $mailer) { $url = "test";

我正试图发送一封带有令牌的电子邮件,以便重新发送自动密码。但在我看来,我正在检索以下错误:

/**
     * @Route("/forget-email/", name="forget", methods="GET|POST")
     */
     public function emailrestore(Request $request, User $user, \Swift_Mailer $mailer)
     {
        $url = "test";
        $form = $this->createForm(ForgetPasswordType::class, $user);
        $form->handleRequest($request);
        $email = $form['email']->getData();
        $user = $this->getDoctrine()
        ->getRepository(User::class)
        ->find($email);
        if ( $email === $user ) {
            $mail = (new \Swift_Message('Hello Email'))
                ->setFrom('email@email.email')
                ->setTo($email)
                ->setBody(
                    $this->renderView(
                        // templates/emails/registration.html.twig
                        'emails/registration.html.twig',array('url' => $url,)
                    ),
                    'text/html'
                );
                $mailer->send($mail);
        } else{
            var_dump("$email");
        }

        return $this->render('forget/email.html.twig', [
            'form' => $form->createView(),
            'error' => null,
        ]);
     }
在我的实体中,电子邮件是唯一的

* @UniqueEntity(fields="email", message="Email already taken")
我正在检索以下错误: 无法猜测如何从参数“user”的请求信息中获取条令实例。为什么

感谢您对advance的解释

您的操作参数中有“User$User”,但您的请求中没有参数“User”,因此我猜您的ParamConverter无法将此参数转换为用户对象

使您的路线成为格式如下的GET路线:

/**
 * @Route("/forget-email/{user}", name="forget", methods="GET")
 */
如果用户是您想要的任何东西(邮件、用户名、uid等),只要它允许您检索您的用户对象,并让您的paramconverter将其转换为条令对象

解决方案如下: