Bonjour,
j'ai créé un formulaire basé sur ma classe User (qui hérite de BaseUser du FOSUserBundle) dont voici le code :
Dans mon contrôleur j'ai cette méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37 <?php namespace BEL\UserBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class UtilisateursType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder ->add('username') ->add('email') ->add('enabled') ->add('password', 'password') ->add('roles', 'choice', array('choices' => array('ROLE_ADMIN' => 'Administrateur', 'ROLE_SUPER_ADMIN' => 'Super Administrateur'), 'multiple' => false, 'expanded' => false, 'property_path' => false)) ->add('user_nom') ->add('user_prenom') ->add('user_tel_travail'); } public function getDefaultOptions(array $options) { return array( 'data_class' => 'BEL\UserBundle\Entity\User', ); } public function getName() { return 'User'; } } ?>
Le problème que je rencontre est que je ne passe JAMAIS dans le if($form->isValid()) y compris quand tous mes champs sont remplis avec des données correctes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 public function creerUtilisateurAction() { $request = $this->get('request'); // On récupère l'objet request via le service container $utilisateur = new User(); // On créé notre objet Utilisateur vierge $form = $this->get('form.factory')->create(new UtilisateursType(), $utilisateur); // On bind l'objet Utilisateur à notre formulaire UtilisateurType if ('POST' == $request->getMethod()) { // Si on a posté le formulaire $form->bindRequest($request); // On bind les données du form if ($form->isValid()) { // Si le formulaire est valide // Pour récupérer le service UserManager du bundle $userManager = $this->get('fos_user.user_manager'); die('<pre>'.print_r($userManager, true)); // On envoi une 'flash' pour indiquer à l'utilisateur que le bureau est ajouté $this->get('session')->setFlash('notice', $this->get('translator')->trans('L\'utilisateur a été ajouté') ); // On redirige vers la page d'accueil du site return new RedirectResponse($this->generateUrl('home')); } } return array('form' => $form->createView(), 'utilisateur' => $utilisateur); }
Quelqu'un saurait pourquoi ?
Merci d'avance
Partager