bonjour,
j'ai créé une entité INDIVIDU avec une contrainte :
un FORMULAIRE :
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
38
39
40
41
42
43
44
45
46
47
48
49
50 <?php namespace adminTools\AnnuaireBundle\Entity; use Symfony\Component\Validator\Constraints as Assert; use Doctrine\ORM\Mapping as ORM; /** * adminTools\AnnuaireBundle\Entity\Individu * * @ORM\Table(name="individu") * @ORM\Entity(repositoryClass="adminTools\AnnuaireBundle\Entity\IndividuRepository") */ class Individu { /** * @var integer $id * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string $login * * @ORM\Column(name="login", type="string", length=15, nullable=true) */ private $login; /** * @var string $nom * * @ORM\Column(name="nom", type="string", length=255, nullable=true) */ private $nom; /** * @var string $mail * * @ORM\Column(name="mail", type="email", length=255, nullable=true) * @Assert\Email( * message = "The email '{{ value }}' is not a valid email.", * checkMX = true * ) */ private $mail; ////////
Handler :
Type :
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
38
39
40
41
42 <?php namespace adminTools\AnnuaireBundle\Form; use Symfony\Component\Form\Form; use Symfony\Component\HttpFoundation\Request; use Doctrine\ORM\EntityManager; use adminTools\AnnuaireBundle\Entity\Individu; use adminTools\AnnuaireBundle\Form\IndividuType; use Symfony\Component\Validator\Constraints; class IndividuHandler { protected $form; protected $request; protected $em; public function __construct(Form $form, Request $request, EntityManager $em) { $this->form = $form; $this->request = $request; $this->em = $em; } public function process() { if ($this->request->getMethod() == 'POST' ) { $this->form->bindRequest($this->request); if ($this->form->isValid()) { return true; } } return false; } } ?>
appelé par mon controller :
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 <?php namespace adminTools\AnnuaireBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class IndividuType extends AbstractType { public function buildForm (FormBuilder $builder, array $options) { $builder ->add ('login','text') ->add ('nom', 'text') ->add ('mail', 'text') ->add ('numEtu', 'integer') ; } public function getName() { return 'IndForm'; } public function getDefaultOptions (array $options) { return array ( 'data_class' => 'adminTools\AnnuaireBundle\Entity\Individu', ); } } ?>
tout s'affiche bien, le bind se fait, mais la validation est totalement ignorée :
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 public function rechercheIndAction() { $individu = new Individu; //création du formulaire $form = $this->createForm(new IndividuType, $individu); //création du gestionnaire de formulaire associé $formHandler = new IndividuHandler($form, $this->get('request'), $this->getDoctrine()->getEntityManager()); // si pas en POST ou pas valide, on reaffiche le formulaire if (!$formHandler->process()) { return $this->render('adminToolsAnnuaireBundle:Annuaire:rechercheInd.html.twig', array('form'=>$form->createView())); } }
je peux rentrer "sdlkfjqs" ou encore "1234" dans le champs mail, ca ne lève rien du tout, ca passe nikel....
j
j'ai testé avec un fichier validation.yml mais idem :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 adminTools\AnnuaireBundle\Entity\Individu: properties: mail: - Email: message: The email "{{ value }}" is not a valid email. checkMX: true
Partager