Expected argument of type "App\Entity\void", "string" given

1k Views Asked by At

For my application with Symfony 3.4 (with Symfony Flex) I want a registration system. My system is very simple, I've a form with 3 fields.

use App\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;

class RegisterType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username', TextType::class)
            ->add('email', TextType::class)
            ->add('password', PasswordType::class)
            ->add('save', SubmitType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class'    =>  User::class,
            'csrf_protection' => true,
            'csrf_field_name' => '_token'
        ));
    }
}

with my controller

public function register(Request $request): Response
{
    $user = new User();

    $form = $this->createForm(RegisterType::class, $user);

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($user);
        $em->flush();
        $this->addFlash('success', 'Bravo');

        return $this->redirectToRoute('default_home');
    }

    return $this->render('user/register.html.twig', [
        'form'  =>  $form->createView()
    ]);
}

And the error Expected argument of type "App\Entity\void", "string" given at line 32 in my controller so $form->handleRequest($request);

Thanks for your help !

0

There are 0 best solutions below