by Guest » 12 Jan 2025, 13:48
Ziel
Ich versuche, eine Grundform zu erstellen, die einen neuen Spieler für eine Sportart anmeldet. Dies ist dem Symfony-
Beispiel entnommen unter:
https://symfony.com/doc/current/form/dy ... ed-dataDer Code
Ich habe 3 Entitäten:
PlayerList
https://github.com/ChimeraBlack1/Sympha ... erList.php
Sport
https://github.com/ChimeraBlack1 /Symhart/blob/main/src/Entity/Sport.php
Position
https://github.com/ChimeraBlack1/Sympha ... sition.php
Ich habe ein Formular:
NewPlayerType
https://github.com/ChimeraBlack1/Sympha ... erType.php
Ich habe ein Controller:
NewPlayerController
https://github.com/ChimeraBlack1/Sympha ... ler.phpDer Fehler:
Code: Select all
Entity of type "Doctrine\Common\Collections\ArrayCollection" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager?
Details:
Ich erhalte diese Fehlermeldung anscheinend immer dann, wenn ich mit dem Formular-Builder ein Formular vom Typ „EntityType“ erstelle, etwa so:
Referenz:
https://github.com/ChimeraBlack1/Sympha ... erType.php (Zeile 22)
Code: Select all
->add('sport', EntityType::class, [
'class' => Sport::class,
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('s')
->orderBy('s.sport', 'ASC');
},
'choice_label' => 'sport',
])
Mir scheint, dass dies geschieht, weil ich in der Form „NewPlayerType“ auf „Sport::class“ verweise. Wenn ich auf „PlayerList::class“ verweisen würde, tritt der Fehler nicht auf. Aber wie kann ich Felder, die auf anderen Entitäten wie dieser basieren, in einem einzigen Formular ausfüllen? Mir fehlt hier konzeptionell etwas, glaube ich...
Ziel
Ich versuche, eine Grundform zu erstellen, die einen neuen Spieler für eine Sportart anmeldet. Dies ist dem Symfony-
Beispiel entnommen unter:
https://symfony.com/doc/current/form/dynamic_form_modification.html#form-events-submitted-dataDer Code
[b]Ich habe 3 Entitäten:[/b]
PlayerList
https://github.com/ChimeraBlack1/Symphart/blob/main/src/Entity/PlayerList.php
Sport
https://github.com/ChimeraBlack1 /Symhart/blob/main/src/Entity/Sport.php
Position
https://github.com/ChimeraBlack1/Symphart/blob/main/src/Entity/Position.php
[b]Ich habe ein Formular:[/b]
NewPlayerType
https://github.com/ChimeraBlack1/Symphart/blob/main/src/Form/NewPlayerType.php
[b]Ich habe ein Controller[/b]:
NewPlayerController
https://github.com/ChimeraBlack1/Symphart/blob/main/src/Controller/NewPlayerController.phpDer Fehler:
[code]Entity of type "Doctrine\Common\Collections\ArrayCollection" passed to the choice field must be managed. Maybe you forget to persist it in the entity manager?
[/code]
Details:
Ich erhalte diese Fehlermeldung anscheinend immer dann, wenn ich mit dem Formular-Builder ein Formular vom Typ „EntityType“ erstelle, etwa so:
[b]Referenz[/b]:
https://github.com/ChimeraBlack1/Symphart/blob/main/src/Form/NewPlayerType.php (Zeile 22)
[code] ->add('sport', EntityType::class, [
'class' => Sport::class,
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('s')
->orderBy('s.sport', 'ASC');
},
'choice_label' => 'sport',
])
[/code]
Mir scheint, dass dies geschieht, weil ich in der Form „NewPlayerType“ auf „Sport::class“ verweise. Wenn ich auf „PlayerList::class“ verweisen würde, tritt der Fehler nicht auf. Aber wie kann ich Felder, die auf anderen Entitäten wie dieser basieren, in einem einzigen Formular ausfüllen? Mir fehlt hier konzeptionell etwas, glaube ich...