2016-03-24 10 views
0

私のようなsymfonyの3でカスタムフォームの追加のループ、したいと思います:Symfony3 createFormBuilder

$defaultData = array('message' => 'Type your message here'); 
$profilForm = $this->createFormBuilder($defaultData) 
    ->add('Nom', TextType::class); 
    ->add('Description', TextType::class) 

foreach ($variable as $key => $value) 
{ 
    $profilForm 
     ->add('Widget', ChoiceType::class, array(
     'choices' => array(
      'Créer' => 'C', 
      'Afficher' => 'R', 
      'Modifier' => 'U', 
      'Supprimer' => 'D'), 
     'multiple' => true, 
     'expanded' => true)) 
} 
$profilForm 
    ->add('send', SubmitType::class) 
    ->getForm(); 

問題は、私はエラーを取得するということです

"Symfony \ Component \ Form \ FormBuilder"クラスの "createView"という未定義のメソッドを呼び出そうとしました。

はまた、私はこのように行う場合:

$defaultData = array('message' => 'Type your message here'); 
$profilForm = $this->createFormBuilder($defaultData) 
    ->add('Nom', TextType::class); 
    ->add('Description', TextType::class) 

foreach ($variable as $key => $value) 
{ 
    $profilForm = $this->createFormBuilder($defaultData) 
     ->add('Widget', ChoiceType::class, array(
     'choices' => array(
      'Créer' => 'C', 
      'Afficher' => 'R', 
      'Modifier' => 'U', 
      'Supprimer' => 'D'), 
     'multiple' => true, 
     'expanded' => true)) 
} 
$profilForm 
    ->add('send', SubmitType::class) 
    ->getForm(); 

これは、以前のエントリを上書きします。

答えて

0

私はそれがこのように働かせた:この投稿へ

$tmpForm = $this->createFormBuilder() 
    ->add('Nom', TextType::class) 
    ->add('Description', TextType::class); 

$i = 2; 
foreach ($listWidget as $key => $widget) 
{ 
    $name = preg_replace("/[^a-zA-Z0-9]/", "", $widget->getNom()); 
    $formBuilder = $this->get('form.factory')->createNamedBuilder($i++, FormType::class, null); 
    $formBuilder 
     ->add($widget->getNom(), ChoiceType::class, array(
     'choices' => array(
      'Créer' => 'C', 
      'Afficher' => 'R', 
      'Modifier' => 'U', 
      'Supprimer' => 'D'), 
     'multiple' => true, 
     'expanded' => true)); 
    $testForm->add($formBuilder); 
} 
$tmpForm->add('send', SubmitType::class); 
$profilForm = $tmpForm->getForm(); 

ありがとう:How to add a repeated form in a loop symfony2 for the same entity

関連する問題