Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF2][SF][Symfony2] Aktualizacja hasła
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Przepisuję swój portal z wersji 2.8 do 4.4 Symfony.
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:
  1. $changePasswdForm = $this->createForm(new ChangePasswordType(), User::class);



Mój kod:


MainController:
  1. public function accountSettingsAction(Request $Request, LoggerInterface $logger)
  2. {
  3. $logger->info('this is the account action');
  4. $User = $this->getUser();
  5.  
  6. // Change Password
  7.  
  8.  
  9. $changePasswdForm = $this->createForm(new ChangePasswordType(), User::class);
  10.  
  11. if($Request->isMethod('POST') && $Request->request->has('changePassword')){
  12. $changePasswdForm->handleRequest($Request);
  13.  
  14. if($changePasswdForm->isValid()){
  15.  
  16. try {
  17. $userManager = $this->get('user_manager');
  18. $userManager->changePassword($User);
  19.  
  20. $this->get('session')->getFlashBag()->add('success', 'Twoje hasło zostało zmienione!');
  21. return $this->redirect($this->generateUrl('liga_typerow_account'));
  22.  
  23. } catch (UserException $ex) {
  24. $this->get('session')->getFlashBag()->add('error', $ex->getMessage());
  25. }
  26.  
  27. }else{
  28. $this->get('session')->getFlashBag()->add('error', 'Popraw błędy formularza2!');
  29. }
  30. }
  31.  
  32.  
  33. return array(
  34. 'user' => $User,
  35. 'changePasswdForm' => $changePasswdForm->createView()
  36. );
  37. }


ChangePasswordType.php :

  1. <?php
  2.  
  3. namespace App\Form;
  4.  
  5. use App\Entity\User;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Security\Core\Validator\Constraints\UserPassword;
  10.  
  11. class ChangePasswordType extends AbstractType {
  12.  
  13. public function getName() {
  14. return 'changePassword';
  15. }
  16.  
  17. public function buildForm(FormBuilderInterface $builder, array $options) {
  18. $builder
  19. ->add('currentPassword', 'password', array(
  20. 'label' => 'Aktualne hasło',
  21. 'mapped' => false,
  22. 'constraints' => array(
  23. new UserPassword(array(
  24. 'message' => 'Podano błędne aktualne hasło użytkownika'
  25. ))
  26. )
  27. ))
  28. ->add('plainPassword', 'repeated', array(
  29. 'type' => 'password',
  30. 'first_options' => array(
  31. 'label' => 'Nowe hasło'
  32. ),
  33. 'second_options' => array(
  34. 'label' => 'Powtórz hasło'
  35. )
  36. ))
  37. ->add('submit', 'submit', array(
  38. 'label' => 'Zmień hasło'
  39. ));
  40. }
  41.  
  42. public function configureOptions(OptionsResolver $resolver)
  43. {
  44. $resolver->setDefaults([
  45. 'data_class' => User::class,
  46. ]);
  47. }
  48.  
  49. }


AccountSettings.html.twig

  1. {% extends 'base.html.twig' %}
  2.  
  3. {% block content %}
  4.  
  5. <div class="div_change_pass_box"></div>
  6. <div class="div_change_pass_box_small_screen"></div>
  7. <div class="div_change_pass">{{ form(changePasswdForm) }}</div>
  8.  
  9. {% endblock %}




Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 06:14