2016-07-25 28 views
2

フォームが送信される前にフォームのエラーを表示したいと思います。 データベースのデータが不完全な形式がありますので、保存しようとする前に既に存在していないものを表示したいと思います。投稿前のフォーム検証

しかし、$ form-> isValid()は、フォームが送信されたときにのみ実行されます(ポストでのみ発生します)。

私はバリデーターを試しましたが、フォームに追加しなくてもエラーのリストが表示されますが、これを自分で行うと悪い回避策に見えますが、これを達成するためのフォームのソースを特定できませんでした。

$form = $this->get('form.factory')->create(SchoolFormType::class, $school, $formOptions); 
$form->handleRequest($request); 
if ($form->isValid()) { 
    // ... 
} 

答えて

1

あなたはと提出をシミュレートすることができます。

$form->handleRequest($request); 

$wasSubmitted = $form->isSubmitted(); 

if(!$wasSubmitted){ 
    $form->submit($form->getData(),false); 
} 

if ($form->isValid()) { 
    // ... 

    // next lines are to be sure that the form will always need to be submitted manualy : 
    if($wasSubmitted){ 
     $em->persist($entity); 
     $em->flush(); 

     return $this->render ... 
    } 
} 

return $this->render ... 

source codeに提出する方法を参照してください。

+1

ありがとうございました! $ form-> submit(null、false)を試しました。しかし、それは私にcsrfエラーを与え、私はそれを複製する方法がわかりませんでした。魅力的な作品! – tmas

関連する問題