2016-11-03 3 views
1

In meiner Anwendung kann ein Benutzer viele Sprachen haben, so User und Language Entities sind durch ManyToOne Beziehung verwandt.Symfony 2.8 - Formularsammlungsart Rendering nur Etikett

In Benutzer Entitätsklasse:

/** 
* @ORM\OneToMany(targetEntity="TraineeLanguage", mappedBy="trainee", cascade={"persist"})) 
*/ 
private $languages; 

public function __construct() 
{ 
    $this->languages = new ArrayCollection(); 
} 

In Sprache Entitätsklasse:

/** 
* @ORM\ManyToOne(targetEntity="Trainee", inversedBy="languages") 
* @ORM\JoinColumn(name="trainee_id", referencedColumnName="id") 
*/ 
private $trainee; 

Nun würde Ich mag eine Sammlung von Sprachformen in Benutzerprofil-Formular erstellen:

->add('languages', CollectionType::class, array(
    'type' => TraineeLanguageType::class, 
    'required' => false 
)) 

Meine Sprachform:

Jetzt
class TraineeLanguageType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('language', TextType::class, array(
       'attr' => array(
        'placeholder' => 'Language' 
       ), 
       'required' => false 
      )) 
      ->add('level', TextType::class, array(
       'attr' => array(
        'placeholder' => 'Level' 
       ), 
       'required' => false 
      )); 
    } 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver 
      ->setDefaults(array(
       'data_class' => 'IndexBundle\Entity\TraineeLanguage' 
      )); 
    } 

    public function getName() 
    { 
     return 'language'; 
    } 
} 

wenn ich versuche, die Form ist

{{ form_row(trainee_background_information_form.languages) }} 

Nur Label angezeigt angezeigt werden soll.

Auch ist es nicht funktioniert mit:

{{ form_widget(trainee_background_information_form.languages) }} 

oder

{% for language in trainee_background_information_form.languages %} 
    {{ form_row(language) }} 
{% endfor %} 

Hat jemand Hinweis Fehler in meinem Code und wissen, was los ist?

Antwort

2

Wenn Sie Collection-Typ verwenden, müssen Sie zusätzliche html & js schreiben, um diese Art von Feld zu behandeln. Weitere Informationen finden Sie in der Symfony-Dokumentation: http://symfony.com/doc/current/reference/forms/types/collection.html

+0

Ich habe den Teil mit hinzufügen, entfernen Sie die Tasten komplett vermisst. Da MopaBootstrap- und BraincraftedBootstrap-Bundles die Ansicht wiedergeben, dachte ich, dass sie nur gestylt und keine JS-Funktionalität erstellt haben. Danke, jetzt ist alles in Ordnung. –