Symfony在没有断言的情况下验证电子邮件

时间:2016-10-13 20:57:50

标签: php forms symfony

我制作了一个简单的Symfony表单,只有一个电子邮件字段。此表单用于将文档发送给用户。表单未链接到任何实体。因此,formtype看起来像这样:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('email', 'email', array(
            'mapped' => false
        ))
        ->add('save', 'submit');
}

因此,电子邮件字段未映射,这可以正常工作。

现在我想验证电子邮件地址,就像我使用其他表单一样,我有以下断言:

@Assert\Email(message = "email.not_valid", checkMX = true)

由于此formtype没有实体,我想知道如何将checkMX添加到电子邮件字段中?

1 个答案:

答案 0 :(得分:1)

https://symfony.com/doc/current/form/without_class.html#form-option-constraints

Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization

' Serializable Class
Public Class ExampleClass
    Public Property MyProperty As String
End Class

' Example
Module Module1
    Sub Main()
        Dim testXmlStream = New MemoryStream(Encoding.UTF8.GetBytes(
            "<ExampleClass xmlns=""http://tempuri.org/SomePhonyNamespace1.xsd"">
                 <MyProperty>SomeValue</MyProperty>
             </ExampleClass>"))

        Dim serializer As New XmlSerializer(GetType(ExampleClass))
        Dim reader As New XmlTextReader(testXmlStream)
        reader.Namespaces = False
        Dim example = DirectCast(serializer.Deserialize(reader), ExampleClass)

        Console.WriteLine(example.MyProperty)   ' prints SomeValue
    End Sub
End Module

编辑 checkMx - &gt;的CheckMX