2016-05-23 9 views
0

Ich brauche zwei Eingänge, so dass der Benutzer vonein Feld mehrere Male in Zweig Render und Symfony

-Controller wählen

$etud = new Etudiant(); 
$form=$this->createFormBuilder($etud) 
    ->add('filierechoisit',EntityType::class,array('class'=>'inscriptionBundle\Entity\filieres', 'choice_label'=>'libelle_filiere')) 
    ->add('filierechoisit',EntityType::class,array('class'=>'inscriptionBundle\Entity\filieres', 'choice_label'=>'libelle_filiere'))->getForm(); 
if ($form->isValid()) { 
    // ... maybe do some form processing, like saving the Task and Tag objects 
} 

return $this->render('inscriptionBundle:Default:authentification.html.twig', array(
    'modif' => $form->createView(), 
)); 

Wie kann ich es tun?

+0

2 Felder mit dem gleichen Namen? Wie siehst du das zu arbeiten? – zerkms

+0

ich weiß, es ist nicht nur die optionen leer: p, irgendeine idee wie kann ich das tun? –

+0

Sicher ist das ein Sammlungs-Typ. Lesen Sie die Formulardokumentation im Detail: http://symfony.com/doc/current/book/forms.html – Richard

Antwort

1

Ich bin fast sicher, dass Sie eine als trueChoiceType/EntityType Feld mit multiple und expanded Optionen möchten. Es sollte wie folgt sein:

$form->add('filierechoisit', EntityType::class, array(
    # query choices from this entity 
    'class' => 'inscriptionBundle\Entity\filieres', 
    # use the filieres.libelle_filiere property as the visible option string 
    'choice_label' => 'libelle_filiere', 
    # used to render a select box, check boxes or radios 
    'multiple' => true, 
    'expanded' => true, 
)); 
0

Sie die Formularverarbeitung und Form Rendering mischen. Wenn der Benutzer auswählen soll, auf welche Weise er Daten eingibt, möchten Sie diese Daten nicht auf zwei verschiedene Arten verarbeiten, bis diese zwei unabhängige Felder sind.

sollten Sie haben nur eine

->add('filierechoisit',EntityType::class,array('class'=>'inscriptionBundle\Entity\filieres', 'choice_label'=>'libelle_filiere')) 

Anruf Feldverarbeitung hinzu und für die Front-End-Seite Rendering links. Sie könnten einige JS oder API dort verwenden, oder in einfachen Fall nur Zweig Vorlage außer Kraft für das Feld

http://symfony.com/doc/current/cookbook/form/form_customization.html

Sie könnten Ihr eigenes Widget für Ihr Formular hier machen, Benutzer zu ermöglichen, einige html Sachen zu tun, um Eingabe ändern

Gegenwärtig machen zwei add mit identischen Namen Anruf macht nur die zweite überschreiben die erste.