E-postanın kimliği belirli bir alana ait değilse, e-posta kimliğindeki bir doğrulama koymam gereken bir kayıt formu üzerinde çalışıyorum. Kişinin bu soruya yanıt vermemesi gerekir varsayılan olarak symfony, açabileceğim ya da özel bir doğrulama oluşturmam gereken bu doğrulama seçeneğine sahip mi? e-posta kimliği yahoo.com
Symfony - Belirli alan adından kaydını durdurma
cevap
Hayır, etki alanı e-postası için symfony2'de yerleşik bir özellik yok. Ama ekleyebilirsin. Yapabilecekleriniz creating a custom constraint. Yeni doğrulayıcı kullanabilirsiniz Bundan sonra
namespace AppBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class EmailDomainValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
$explodedEmail = explode('@', $value);
$domain = array_pop($explodedEmail);
if (!in_array($domain, $constraint->domains)) {
$this->context->buildViolation($constraint->message)
->setParameter('%email%', $value)
->addViolation();
}
}
}
namespace AppBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
/**
* @Annotation
*/
class EmailDomain extends Constraint
{
public $domains;
public $message = 'The email "%email%" has not a valid domain.';
}
: Birisi ihtiyacı
use Symfony\Component\Validator\Constraints as Assert;
use AppBundle\Validator\Constraints as CustomAssert;
class MyEntity
{
/**
* @Assert\Email()
* @CustomAssert\EmailDomain(domains = {"yahoo.com", "gmail.com"})
*/
protected $email;
durumda
burada.yml
dosyası içinde doğrulama eklemek için bunu yapabilirsiniz nasıl .
- AppBundle\Validator\Constraints\EmailDomain:
domains:
- yahoo.com
varsa
Örneğin sadece Birkaç e-posta etki alanları için e-posta adresini test etmek Regex constraint kullanabilirsiniz insanlar kayıt olmak istiyorum. Diğer durumda kendi kısıtınızı yaratmak zorunda kalacaksınız.
Regex kısıtlamasının bu amaç için nasıl kullanılabileceği konusunda bana bir örnek verebilir misiniz? – Saadia
^[a-zA-Z] + @ (domain1 \ .com | domain2 \ .com | etc) gibi bir şeyi deneyebilirsiniz. –
- 1. Belirli bir süre sonra MySQL kaydını silme
- 2. deve ayırıcı - belirli bir istisnada döngüyü durdurma
- 3. Belirli Noktada Sabit Div Durdurma jQuery
- 4. UIDatePicker kullanarak belirli bir zamanda bildirimleri durdurma
- 5. Viewpage belirli bir yönde kaydırmayı durdurma
- 6. Plesk, SMTP ve aynı alan adından e-posta gönderme
- 7. Symfony Twig Form Belirli alanların teması
- 8. Symfony
- 9. Fields_for yöntemi için gizli alan oluşturmaya yönelik durdurma rayları
- 10. Castle Windsor: Belirli uygulamalarla birlikte kongre kaydını kullanma
- 11. raylarda yakut belirli bir sütun adından sonra bir sütun ekleyin
- 12. symfony olarak Symfony 2
- 13. Building Symfony 2 Birden Fazla Alan Kullanan Özel Doğrulama Aracı
- 14. Symfony
- 15. Symfony
- 16. Symfony
- 17. Symfony
- 18. Symfony
- 19. Symfony
- 20. Symfony
- 21. Symfony
- 22. jQuery durdurma
- 23. raylar, bir özniteliğe dayalı ilişkilendirme sınırı kaydını
- 24. Symfony 2 veya Symfony 1.4?
- 25. Dosya adından mimetype alın
- 26. Dosya adından kaldır yolu
- 27. JSqlParser - Tablo adından başlayarak
- 28. Dosya adından java
- 29. Searchkick el ile kaydını sil Endeks
- 30. InlineFormSet'te belirli bir alan nasıl temizlenir?
Eğer e-postanın etki bahsediyoruz, soruyu düzenlemek düşünün, "e-posta id" öneri için MarianoArgañaraz sayesinde @ –
diye bir şey olduğunu. – Saadia