Hallo, hoffe sowas ist hier auch okay.

Hier gibt es anscheind ja auch paar Profis

ich habe ein Formular mit 3 Selects, diese werden nach und nach dynamisch gefüllt. Das klappt auch alles. Nur das beim letzten Select wird die liste beim abschicken wieder gelöscht.


PHP-Code:

    
public function buildForm(FormBuilderInterface $builder, array $options): void
    
{
 
        
$builder
            
->add('band'EntityType::class, [
                
'class' => Bands::class,
                
'choice_label' => 'title',
                
'placeholder' => 'Wähle eine Band',
            ])
            ->
add('tour'EntityType::class, [
                
'class' => Tourneen::class,
                
'choice_label' => 'title',
                
'placeholder' => 'Wähle eine Band',
            ])
            ->
add('concert'EntityType::class, [
                
'class' => Concerts::class,
                
'choice_label' => 'alias',
                
'placeholder' => 'Wähle eine Band',
            ]);

            
//tour
            
$formModifier = function (FormInterface $form, ?Bands $band null): void {
                
$tourneen null === $band ? [] : $band->getTourneens();
                
$form->add('tour'EntityType::class, [
                    
'class' => Tourneen::class,
                    
'choice_label' => 'title',
                    
'placeholder' => 'Tour',
                    
'choices' => $tourneen,
                ]);
            };

            
//concert
            
$formModifierConcerts = function (FormInterface $form, ?Tourneen $tour null): void {
                
$concerts null === $tour ? [] : $tour->getConcerts();
                
$form->add('concert'EntityType::class, [
                    
'class' => Concerts::class,
                    
'choice_label' => 'alias',
                    
'placeholder' => 'Concert',
                    
'choices' => $concerts,
                ]);
            };

            
//lädt die daten für edit
            
$builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) use ($formModifier): void {
                
$data $event->getData();
                
$formModifier($event->getForm(), $data->getBand());
            });
           
            
$builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) use ($formModifierConcerts): void {
                
$data2 $event->getData();
                
$formModifierConcerts($event->getForm(), $data2->getTour());
            });
             
//lädt die daten für edit

            
$builder->get('band')->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use ($formModifier): void {
                
$band $event->getForm()->getData();
                
$formModifier($event->getForm()->getParent(), $band);
            });

            
$builder->get('tour')->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) use ($formModifierConcerts): void {
                
$tour $event->getForm()->getData();
                
dump($tour);
                
$formModifierConcerts($event->getForm()->getParent(), $tour);
            });

        
$builder->add('save'SubmitType::class, ['label' => 'Speichern''attr' => ['class' => 'btn btn-secondary btn-sm']]);
    } 
Das dump($tour); ist immer null, das problem trittt auch nur beim anlegen von datensätzen auf, im edit-controller funktiniert es