2017-08-29 3 views
0

Il est possible de créer un validateur de contrainte de courrier électronique personnalisé (comme @ domain.com) en utilisant la "contrainte de validation personnalisée" de Symfony (http://symfony.com/doc/current/validation/custom_constraint.html) mais sans utiliser la contrainte dans l'entité. classe?Symfony/Contraintes & Validateurs sur les formulaires (contrainte de courrier électronique)

J'ai un site mutualisé dans symfony et différents typesTypes pour chaque client. Un client a besoin que seulement peut chanter X domaines de courriels. Dans ce cas, je ne peux pas utiliser une contrainte dans la classe d'entité comme ceci:

class MyEntity 
{ 
    /** 
    * @Assert\Email() 
    * @CustomAssert\EmailDomain(domains = {"yahoo.com", "gmail.com"}) 
    */ 
    protected $email; 

Une idée différente?

+0

quel est le problème ou l'erreur! –

+1

avez-vous essayé quelque chose? il suffit de créer un validateur et de l'utiliser directement sur le formulaire, pas sur l'entité –

+0

@ t-n-y Comment puis-je faire cela? (créez un validateur et utilisez-le directement sur le formulaire) –

Répondre

0

Oui, custom annotation peut travailler sur une classe, ils seront utilisés lorsque vous appelez la $validator->validate($yourClassInstantiated)

Si vous souhaitez obtenir des données dynamiques (comme les domaines en fonction de votre client), vous pouvez utiliser la doctrine dans votre classe ConstraintValidator.

+0

Les réponses au lien seul ont tendance à être rejetées. Surtout quand le lien est réellement dans la question et ne pas être pertinent à la question. – Cerad

+0

Ho, je ne l'ai pas vu: x Désolé ... – mykiwi