So habe ich OneToMany
Beziehung zwischen zwei Entitäten, und ich habe das zugehörige Formular erstellt, aber es scheint, dass die FormBuilder
, nach dem Senden von Daten, nicht die Kinder der sehen Entität.
Übergeordnete Klasse:Symfony: Form Builder nicht OneToMany Eingänge
class Parent{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @ORM\OneToMany(targetEntity="Child",mappedBy="parent",cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=false)
*/
private $children;
}
Kinderklasse:
class Child{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="Parent", inversedBy="children")
*/
private $parent;
}
Dies ist FormTypes:
class ParentType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name')
->add('children', CollectionType::class, array(
'entry_type' => ChildType::class,
'allow_add' => true
));
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Bundle\Entity\Parent'
));
}
}
Kind Formtype:
class ChildType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Bundle\Entity\Child'
));
}
}
Danach habe ich meine Form in der Steuerung wie folgt erstellt:
function saveAction(Request $request){
$parent = new Parent();
$form = $this->createForm('Bundle\Form\ParentType', $parent);
$form->handleRequest($request);
if ($form->isSubmitted()) {
//--after submitted the form I just want to display the children
die(var_dump($parent->getChildren()));
}
}
Natürlich habe ich die Kinder bin zu schaffen mit Jquery von Daten-Prototyp zur Verfügung gestellt von Symfony FormBuilder
, aber die Form sieht sie nicht !!
Was fehlt mir hier?
Sie können 'query_builder' -Eigenschaft wie hier gezeigt verwenden: [Vollständiges CRUD-Beispiel im Webform-Stil mit einer eingebetteten assoziierten Entität in Symfony] (http://www.inanzzz.com/index.php/post/djrc/full-webform -style-crud-example-with-embedded-assoziierte-entity-in-symfony) – BentCoder