Also ich denke, ich habe jetzt die sauberste (mir bekannte) Lösung gefunden. Alternativ-Vorschläge willkommen.
Anbei ein vereinfachtes Beispiel: --- class ExampleController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { /** * @var \TYPO3\CMS\Extbase\Property\PropertyMapper * @inject */ protected $propertyMapper; /** * @var \Vendor\Extension\Domain\Repository\AnotherObjectRepository * @inject */ protected $anotherObjectRepository = NULL; /**a * Handle the form * * @param \Vendor\Extension\Domain\Model\FormData $formData * @return void */ public function enterContestAction(\Vendor\Extension\Domain\Model\FormData $formData = NULL) { /** @var \Vendor\Extension\Domain\Model\AnotherObject $anotherObject */ $anotherObject = $this->anotherObjectRepository->findByUid(1); $formData = $this->propertyMapper->convert( array( 'anotherObject' => $anotherObject, 'forename' => 'Tester', ), 'Vendor\\Extension\\Domain\\Model\\FormData' ); $this->view->assign('formData', $formData); } } -----Ursprüngliche Nachricht----- Von: typo3-german-boun...@lists.typo3.org [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von David Gurk Gesendet: Donnerstag, 22. Oktober 2015 15:04 An: typo3-german@lists.typo3.org Betreff: [TYPO3-german] Extbase Formular mit default-Werten belegen Gibt es eine Möglichkeit Standard-Werte für die Formular-Daten innerhalb von Extbase im Controller zu definieren? Unten anbei ein Beispiel-Aufbau. Leider ist es ja so, dass beim ersten Aufruf von enterFormDataAction() die Variable $formData noch nicht existiert, sondern erst, wenn das Model komplett validiert ist. Leider kann ich $formData nicht einfach so vorab anreichern: $anotherObject = $this->anotherObjectRepository->findByUid(1); $formData->setAnotherObject(anotherObject); $formData->setForename('Tester'); Hat jemand einen Tipp für mich? Danke und viele Grüße David --- Im Controller habe ich die Action für das Formular: /** * Handle the form for entering the contest * * @param \Vendor\Extension\Domain\Model\FormData $formData * @return void */ public function enterFormDataAction(\\Vendor\Extension\Domain\Model\FormData $formData = NULL) { // Hier dachte ich an etwas ähnliches wie dieses: // $anotherObject = $this->anotherObjectRepository->findByUid(1); // $formData->setAnotherObject(anotherObject); $this->view->assign('formData', $formData); } --- Hier mal reduziert das Template: <f:form method="post" noCacheHash="1" object="{formData}" objectName="formData"> <f:form.hidden property="anotherObject" /> <label for="{formName}-forename" class="control-label"><f:translate key="form.fields.forename" /></label> <div class="{own:form.hasErrors(property: 'forename', then: ' has-error')}"> <f:form.textfield property="forename" type="text" id="{formName}-forename" class="form-control" /> </div> </f:form> --- Das Model dazu sieht reduziert so aus: <?php namespace Vendor\Extension\Domain\Model; class FormData extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity { /** * pid * * @var int */ protected $pid = 15; /** * calendar door * * @var \Vendor\Extension\Domain\Model\AnotherObject * @validate NotEmpty */ protected $anotherObject = NULL; /** * forename * * @var string * @validate NotEmpty, StringLength(maximum=255) */ protected $forename = ''; /** * Returns the anotherObject * * @return \Vendor\Extension\Domain\Model\AnotherObject $anotherObject */ public function getAnotherObject() { return $this->anotherObject; } /** * Sets the anotherObject * * @param \Vendor\Extension\Domain\Model\AnotherObject $anotherObject * @return void */ public function setAnotherObject(\Vendor\Extension\Domain\Model\AnotherObject $anotherObject) { $this->anotherObject = $calendarDoor; } /** * @return string $forename */ public function getForename() { return $this->forename; } /** * @param string $forename * @return void */ public function setForename($forename) { $this->forename = $forename; } } _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german