Na wersji 2.8 działała mi dobrze aktualizacja hasła użytkownika natomiast teraz jest z tym jakiś problem.
Mam błąd:
Argument 1 passed to Symfony\Bundle\FrameworkBundle\Controller\AbstractController::createForm() must be of the type string, object given, called in C:\xampp\htdocs\ligatyperow2\src\Controller\MainController.php on line 254
PS. Linia 254 to:
$changePasswdForm = $this->createForm(new ChangePasswordType(), User::class);
Mój kod:
MainController:
public function accountSettingsAction(Request $Request, LoggerInterface $logger) { $logger->info('this is the account action'); $User = $this->getUser(); // Change Password $changePasswdForm = $this->createForm(new ChangePasswordType(), User::class); if($Request->isMethod('POST') && $Request->request->has('changePassword')){ $changePasswdForm->handleRequest($Request); if($changePasswdForm->isValid()){ try { $userManager = $this->get('user_manager'); $userManager->changePassword($User); $this->get('session')->getFlashBag()->add('success', 'Twoje hasło zostało zmienione!'); return $this->redirect($this->generateUrl('liga_typerow_account')); } catch (UserException $ex) { $this->get('session')->getFlashBag()->add('error', $ex->getMessage()); } }else{ $this->get('session')->getFlashBag()->add('error', 'Popraw błędy formularza2!'); } } 'user' => $User, 'changePasswdForm' => $changePasswdForm->createView() ); }
ChangePasswordType.php :
<?php namespace App\Form; use App\Entity\User; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Security\Core\Validator\Constraints\UserPassword; class ChangePasswordType extends AbstractType { public function getName() { return 'changePassword'; } $builder 'label' => 'Aktualne hasło', 'mapped' => false, 'message' => 'Podano błędne aktualne hasło użytkownika' )) ) )) 'type' => 'password', 'label' => 'Nowe hasło' ), 'label' => 'Powtórz hasło' ) )) 'label' => 'Zmień hasło' )); } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => User::class, ]); } }
AccountSettings.html.twig
{% extends 'base.html.twig' %} {% block content %} {% endblock %}