2016-09-22 8 views
0

Ich arbeite an Symfony, Ich habe eine Beziehung: Produkt - OneToMany - Image. Ich möchte in meinem Produkt hinzufügen, hinzufügen 4 Bild.Symfony - Fügen Sie mehrere Formulare in einem Formular hinzu

Ich weiß, wie es mit JavaScript zu tun (Durch das Hinzufügen dynamisch Eingänge mit dem Muster ...), aber ich würde es in meiner Form zu tun, aber ich weiß nicht, wie ...

Hier ist mein Code:

ProductType.php

class ProjectType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('title', TextType::class, array('label' => 'Titre')) 
      ->add('url', UrlType::class, array('label' => 'URL')) 
      ->add('client', TextType::class, array('label' => 'Client')) 
      ->add('description', TextType::class, array('label' => 'Description')) 
      ->add('category', EntityType::class, array(
       'class' => 'AntoinePortfolioBundle:Category', 
       'choice_label' => 'name', 
       'multiple' => false, 
       'label' => 'Catégories')) 
      ->add('tags', EntityType::class, array(
       'class' => 'AntoinePortfolioBundle:Tag', 
       'choice_label' => 'name', 
       'multiple' => true, 
       'label' => 'Tags')) 
      ->add('images', CollectionType::class, array(
       'entry_type' => ImageType::class)); 
    } 

    /** 
    * @param OptionsResolver $resolver 
    */ 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'Antoine\PortfolioBundle\Entity\Project' 
     )); 
    } 
} 

ImageType.php

<?php 

namespace Antoine\PortfolioBundle\Form; 

use Symfony\Component\Form\Extension\Core\Type\TextType; 
use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\Extension\Core\Type\FileType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolver; 

class ImageType extends AbstractType 
{ 
    /** 
    * @param FormBuilderInterface $builder 
    * @param array $options 
    */ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add('name', TextType::class, array('label' => 'Nom')) 
      ->add('alt', TextType::class, array('label' => 'alt')) 
      ->add('file', FileType::class, array('label' => 'Image')); 
    } 

    /** 
    * @param OptionsResolver $resolver 
    */ 
    public function configureOptions(OptionsResolver $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'Antoine\PortfolioBundle\Entity\Image' 
     )); 
    } 
} 

Meine Beziehungen funktionieren, das ist kein ne Problem.

Vielen Dank für Ihre Zeit!

Antwort

0

Sie können dies mithilfe von Formularereignissen erreichen. http://symfony.com/doc/current/form/events.html

Ich denke FormEvents::PRE_SET_DATA wird funktionieren.

+0

Vielen Dank, aber ich habe bereits ein JavaScript-Skript geschrieben, eigentlich funktioniert es gut. Danke auch für diesen Link, ich überprüfe es! – Antoine

Verwandte Themen