2016-12-17 2 views
0

後にフォームを変更symfonyの3私は、ユーザー情報フォームを作成するように設定フォームビルダを持っをgetForm

// Check if name or mail not occupied 
       if($user_manager->findUserByEmail($mail)){ 

       } 
       elseif($user_manager->findUserByUsername($name)){ 

       } 

撮影した私の目標は、メール/ユーザ名がフォームを再び印刷する持っている占有に、これだけの時間は、占有値は「この値が占有されている」と言って

012をプレースホルダを持っているだろうことです

今、私は別の

 $form->add('newMail', TextType::class, array(
      'required' => false, 
      'label' => "Change Email", 
      'attr' => array(
       'placeholder' => "EMAIL TAKEN" 
      ) 
     )); 

のようなステートメントは、残念ながら、これは私にあなたが送信されたフォーム

に子を追加することはできません

を言ってエラーを返した場合に「追加」を追加しようとしています

ここに私の質問です: それを行うには良いと適切な方法はありますか?


Bサイド:

私はすなわちのようなブラウザのデフォルトの検証を引き起こす可能性があります。入力が必要な場合にクロムでそれを置くことができないと、ボックスが赤くなり、エラーメッセージが表示されます。

その場合には、私は警告と赤の入力ボックスになるだろうので、私はこのプロジェクトのために、ここで同じことを行うことができれば、私は、「電子メール取られ」または多分その

答えて

0

このような何かのようなもの不思議でしたか?

$form = $this->createFormBuilder($userSettings) 
->add('newName', TextType::class, array(
    'required' => false, 
    'label' => "Change UserName", 
    'attr' => array(
     'placeholder' => $userData[0]->getUsername() 
    ) 
)) 
->add('newMail', TextType::class, array(
    'required' => false, 
    'label' => "Change Email", 
    'attr' => array(
     'placeholder' => $userData[0]->getEmail() 
    ) 
)) 
->add('newPassword', PasswordType::class, array(
    'required' => false, 
    'label' => "Change Password" 
)) 
->add('currentPassword', PasswordType::class, array(
    'label' => "Current Password" 
)) 
->add('save', SubmitType::class, array('label' => 'Update Information!')); 

if(isset($mail) && $user_manager->findUserByEmail($mail)){ 
    $form->remove('newMail') 
     ->add('newMail', TextType::class, array(
     'required' => false, 
     'label' => "Change Email", 
     'attr' => array(
      'placeholder' => 'EMAIL TAKEN' 
     ) 
    )); 
} 
elseif(isset($name) && $user_manager->findUserByUsername($name)){ 
    // just duplicate the above 
} 

$form->getForm(); 
+0

このオプションは、私がそれを扱うことを躊躇しているフォームから情報を取得するために機能しませんでした。 You'r wayは私に '' Symfony \ Component \ Form \ FormBuilder "クラスの" handleRequest "という未定義のメソッドを呼び出そうとしました。 – aln447

関連する問題