1

@Stony のアドバイスに従うようにコードを変更します。

メール入力エラーをカスタマイズしたい。symfony2のチュートリアルに従おうとしましたが、うまくいきません。

symfony 検証チュートリアルに従い、yml ファイルを作成しますが、メール フィールドに不正なアドレスを入力すると、エラー表示は symfony のデフォルト エラーのままで、カスタム メッセージではありません...

/**
 *
 * @Route("/info")
 */
class InfoController extends BaseController
{
    public function contactusAction(Request $request)
    {   
    $constraint = new Collection(array('email' => new Email(array('message' => 'Adresse email invalide')),));

    $contact = new ContactUs(); 
    $form = $this->createFormBuilder($contact)
        ->add('nom', 'text')
        ->add('mail', 'email')
        ->add('sujet', 'choice', array('choices' => array('pt' => 'Problemes techniques', 'bi' => 'Boite a idees', 'd' => 'Divers')))
        ->add('msg', 'textarea')
        ->getForm();
    }
}

これが私の見解です

<form action="" method="post" {{ form_enctype(form) }} class="contactus">
        {{ form_errors(form) }}
        <div>
            {{ form_label(form.nom, 'Nom : ') }}
            {{ form_errors(form.nom) }}
            {{ form_widget(form.nom) }}
            </div>
            <div>
            {{ form_label(form.mail, 'Email : ') }}
            {{ form_errors(form.mail) }}
            {{ form_widget(form.mail) }}
            </div>
        <div>
            {{ form_label(form.sujet, 'Sujet : ') }}
            {{ form_errors(form.sujet) }}
            {{ form_widget(form.sujet) }}
            </div>
        <div>
            {{ form_label(form.msg, 'Message : ') }}
            {{ form_errors(form.msg) }}
            {{ form_widget(form.msg) }}
            </div>
        <input type="submit" value="Envoyer" />
        {{ form_rest(form) }}
    </form>

ここに私のymlファイルがあります

PROJECT\CoreBundle\Entity\ContactUs:
    properties:
        mail:
            - Email:
                message: Adresse email invalide.
4

2 に答える 2

0

エラーメッセージは非常に明確だと思います:

$form = $this->createFormBuilder($contact, array('constraints' => $constraint))

2 番目のオプションはありませんconstraint。あなたの目標が何であるかはわかりませんが、これは正しい方法ではありません。

検証が必要な場合は、チュートリアルのフォーム クラスの作成を参照してください。ここでは、Form クラスと Type クラスを定義する方法と、フィールドに検証を設定する方法を確認できます。

追加情報:検証

于 2012-10-30T10:18:11.447 に答える
0

フォーム自体ではなくconstraints、フィールドでオプションを使用してください。mail

Symfony 2.0 では、これを使用ます。

于 2012-10-30T10:18:25.697 に答える