2016-10-13 8 views
0

私は電子メールフィールドだけで簡単なSymfonyフォームを作成しました。このフォームは、ユーザーに文書を送信するために使用されます。フォームはどのエンティティにもリンクされていません。したがって、フォームタイプは次のようになります。symfonyはアサートなしで電子メールを検証します

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

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

use Symfony\Component\Validator\Constraints\Email; 

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

EDITのCheckMX - >のCheckMX

+0

今私は、 "オプション "のCheckMXは、" 電子メール\制約のSymfony \コンポーネント\バリ\制約には存在しません" というメッセージが表示されます。 checkMxは電子メールの検証の一部ではないようですか? – Tom

+0

@Tomそれは単にタイプミスです: 'checkMx'は' checkMX'です。 – malcolm

関連する問題