bonjour,

j'ai créé une entité INDIVIDU avec une contrainte :
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;
 
   ////////
un FORMULAIRE :
Handler :
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;
   }
 
 
}
 
?>
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
<?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',
        );
    }
}
 
 
?>
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
 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()));
        }
 
    }
tout s'affiche bien, le bind se fait, mais la validation est totalement ignorée :
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