Hallo zusammen,
Im Zuge meiner Recherchen zu dem folgenden Post:
[url]http://www.typo3.net/forum/thematik/zeige/thema/120704/[/url]
musste ich feststellen, dass dieses Thema doch etwas komplexer ist als ursprünglich angenommen.
Problem:
Erstellen eines Parent Obejektes (submission) und beliebig vielen Childs (authors) [1:n] mittes Fluid.
Lösung:
Zuersten dem Propertymapper konfigurieren:
public function initializeCreateAction() { $this->arguments->getArgument('newSubmission')->getPropertyMappingConfiguration()->allowProperties('authors'); $this->arguments->getArgument('newSubmission')->getPropertyMappingConfiguration()->allowCreationForSubProperty('authors.*'); $this->arguments->getArgument('newSubmission')->getPropertyMappingConfiguration()->forProperty('authors.*')->allowProperties('firstname'); }
Das Template entsprechend anpassen:
<f:form action="create" name="newSubmission" object="{newSubmission}"> <f:form.textfield property="title" /> <f:form.textfield name="newSubmission[authors][1][firstname]" value="{newSubmission.authors.1.firstname}"/> </f:form>
Und schon funktioniert das Anlegen eines neuen Objects "Submission" inkl. Child "Authors".
Die Validierung im Domain Model wird ebenfalls geprüft.
Probleme:
- Child Objects können nur mit "name" und "value" Eigenschaft erstellt werden. Es funktioniert nicht mit der gewollten "property" über den Propertymapper.
- Hier liegt wahrscheinlich auch der Fehler begraben, dass alle Felder Vzwar validiert werden, aber die fehlerbehafteten Felder nicht an das Fluid Template zurück gegeben werden:
[b]No value found for key "TYPO3\CMS\Fluid\ViewHelpers\FormViewHelper->formObject"[/b]
Ich muss hier igendwo ein Brett vor dem Kopf haben, dass diese Funktionlatitäten von so einem mächtigen Framework nicht unterstützt werden?