Ho 3 tipi di modulo in Symfony2Come di aggiungere dinamicamente raccolte nelle collezioni di tipi di moduli di Symfony2
FaultType che è la madre di tutte le prossime collezioni
<?php
namespace My\FaultBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class FaultType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('title')
->add('steps', 'collection', array(
'type' => new StepType(),
'allow_add' => true,
'prototype' => true,
'by_reference' => false,
))
->add('created')
->add('updated')
;
}
public function getDefaultOptions()
{
return array(
'data_class' => 'My\FaultBundle\Entity\Fault'
);
}
public function getName()
{
return 'my_fault_fault';
}
}
StepType:
<?php
namespace My\FaultBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class StepType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('body')
->add('photos', 'collection', array(
'type' => new PhotoType(),
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'by_reference' => false,
))
;
}
public function getDefaultOptions()
{
return array(
'data_class' => 'My\FaultBundle\Entity\Step'
);
}
public function getName()
{
return 'my_fault_step';
}
}
e l'ultimo PhotoType:
<?php
namespace My\FaultBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class PhotoType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('name')
->add('description')
->add('filename')
;
}
public function getDefaultOptions()
{
return array(
'data_class' => 'My\FaultBundle\Entity\Photo'
);
}
public function getName()
{
return 'my_fault_photo';
}
}
Ho trovato l'eccellente articolo link sul prototipo e con un tipo di modulo annidato è molto buono, ma ho un problema quando voglio che questo funzioni con il terzo nido significa PhotoType ... Le foto sono nella collezione di Passi, che è raccolta di errori ..., come posso ottenere in modo dinamico aggiungere/rimuovere foto per i passaggi con questo esempio ...?
Ti preghiamo di aggiungere il contenuto pertinente che hai collegato alla tua risposta. Vedi: [** Fornisci il contesto per i link **] (http://stackoverflow.com/help/how-to-answer) –