2016-11-25 6 views
1

フォームの検証に関する情報の一部を読みましたが、フォーム検証の仕組みを理解できませんでした。symfonyでのフォーム検証の仕組みを理解できません

リクエストされたデータをフォームで検証しようとしましたが、エラーはありません。

私はパスワードの確認を検証したいので、私は私のUserType.phpに次のコードを使用しています:

$builder 
     ->add('username') 
     ->add('password', RepeatedType::class, [ 
      'first_name' => 'password', 
      'second_name' => 'password_confirmation', 
      'required' => true, 
      'invalid_message' => 'The password fields must match.' 
     ]); 

私は次のように私のフォームデータを検証しようので、次:

$user = $userManager->createUser(); 
$form = $this->createForm(UserType::class, $user, ['method' => 'POST']); 
$form->submit($request->request->all()); 

$form->isValid(); // return true 
$form->getErrors(); // return no errors 

編集: 問題が解決しました。私はひどくフォームを検証しない機能をFOSRestBundle

答えて

2
$form->isValid() 

で構成されたのではなく、フォームが有効な場合、あなたがそれを与えるタスクのシリーズを行いました。だから、ユーザーがデータ

例で発生する必要があるか、フォームを送信するとき:

if($form->isValid()){ 
     $em=$this->getDoctrine()->getManager(); 
     $user->setFirstName($data['firstname']) // use name of field 
     $em->persist($user); 

     $em->flush(); 

     return $this->redirectToRoute('your_route', array(
      'needed variable'=> $user_id 
     )); 
    } 

だから何あなたが主にやっていることはsymfonyのフォームからデータを取得し、あなたのdatebaseに保存し、次のことができていますユーザーが着陸することを希望する新しいWebページにリダイレクトします。 addflash()メッセージを追加して、それが動作しているかどうかを表示することもできます。

関連する問題