Невозможно угадать, как получить экземпляр Doctrine из информации запроса для параметра "class" - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь отправить электронное письмо с токеном для повторной отправки автоматического пароля.Но, на мой взгляд, я получаю следующую ошибку:

/**
     * @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")

Я получаю следующую ошибку: «Невозможно угадатькак получить экземпляр Doctrine из информации запроса для параметра "пользователь". "Почему?

Спасибо за ваше объяснение заранее

1 Ответ

1 голос
/ 15 марта 2019

У вас есть «User $ user» в вашем параметре действия, но у вас нет параметра «user» в вашем запросе, я предполагаю, что ваш ParamConverter не может преобразовать его в объект User из-за этого.

делает ваш маршрут GET-маршрутом в следующем формате:

/**
 * @Route("/forget-email/{user}", name="forget", methods="GET")
 */

Где пользователь имеет то, что вы хотите (почта, имя пользователя, uid и т. Д.), Если он позволяет вам извлекать данныеваш пользовательский объект, и ваш параконвертер преобразует его в объект Doctrine ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...