hiimnotwordy
@hiimnotwordy
full-stack

Почему после отправки формы в Symfony 4 isPasswordValid() работает иначе, чем до отправки?

Не могу разобраться почему до отправки всё работает как надо, а после отправки, та же самая логика перестает работать.

public function changePassword(Request $request, UserPasswordEncoderInterface $encoder)
    {

        $plainPassword = 'Test1234';

        # Working -- echo 1
        if ($encoder->isPasswordValid( $this->getUser(), $plainPassword)) {
            echo '1 Current password true'; # Password in data base: Test1234
        } else {
            echo '2 Current password wrong';
        }


        $form = $this->createForm(ChangePasswordType::class, $this->getUser());
        $form->handleRequest($request);

        if ($form->isSubmitted()) {

            # When submit form -- not working -- echo 2
            if ($encoder->isPasswordValid( $this->getUser(), $plainPassword)) {
                echo '1 Current password true';
            } else {
                echo '2 Current password wrong';
            }
            die;
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 2
voronkovich
@voronkovich
Когда вы сделали вызов $form->handleRequest($request) форма замаппила данные пришедшие в запросе, сделав вызов $user->setPassword().

У сущности User сейчас новый пароль, отличный от $plainPassword.
Ответ написан
Комментировать
hiimnotwordy
@hiimnotwordy Автор вопроса
full-stack
Спасибо за ответ. Пытаюсь реализовать проверку пароля пользователя при смене пароля, но в данном случае не понимаю как сравнить текущий пароль в базе после отправки формы. После запроса получается надо опять получить объект User из базы и сравнить его с User из формы?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы