Mon formulaire ne s'affiche pas, error: "array to string conversion" SF4
Bonjour,
Je créé un formulaire d'inscription à la main, donc à la fin de mon controller je passe un tableau en param du render, ce qui fait que dans ma vue twig associée,
le process ne supporte pas le {{ form_start(form) }} ni le {{ form_end(form) }} ou encore le {{ form_widget(form) }}.
Si j'enlève ces balises et je met seulement {{ form_row(form.username) }} par exemple, cela fonctionne mais le formulaire n'est pas traité.
Je souhaiterai pouvoir construire mon formulaire normalement, avec un {{ form_start(form) }} et un {{ form_end(form) }}.
Erreur exacte :
Citation:
An exception has been thrown during the rendering of a template ("Notice: Array to string conversion").
Controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| /**
* @param Request $request
* @param UserPasswordEncoderInterface $passwordEncoder
* @return \Symfony\Component\HttpFoundation\RedirectResponse|Response
* @Route("/createUser", name="create_user")
*/
public function createUser(Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
//building form
$user = new User();
$form = $this->createForm(UserType::class, $user);
//handle the submit
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
//encode the password
$password = $passwordEncoder->encodePassword($user, $user->getPassword());
$user->setPassword($password);
//save user
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
return $this->redirectToRoute('gestion');
}
$formView = $form->createView();
return $this->render('admin/register.html.twig', ['form' => $formView]);
} |
Layout :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| {% extends 'base.html.twig' %}
{% block body %}
{{ form_start(form) }}
{{ form_row(form.username) }}
{{ form_row(form.email) }}
{{ form_row(form.password) }}
<button type="submit">Register!</button>
{{ form_end(form) }}
{% endblock %} |
Merci pour votre aide