Hallo,
ich habe einen View, in dem mir 4 verschiedene Objekte zur Verfügung stehen. Innerhalb dieses Views gibt es genau ein Formular, dass dem Objekt fee zugewiesen ist. In diesem Formular gibt es u.a. ein Textfield für ein Datum (paymentDeadline), das für die Zahlungsfrist verwendet wird und vom Benutzer geändert werden kann. Das Formular selbst soll mir beim Submitten jedoch wieder alle 4 Objekte durchreichen.
Ich kämpfe jetzt jedoch mit folgendem Problem: Wenn ich versuche, das Formular zu submitten, schlägt der Validator natürlich zu, da das Textfield für das Datum mir einen String weiterreicht, das Attribut selbst im Model jedoch als DateTime angelegt ist. Jetzt wollte ich mittels PropertyMapper in der initializeAction auf das Argument paymentDeadline zugreifen und es vorher entsprechend umwandeln. Über die Funktion ...getArgumentNames bekomme ich auch Zugriff auf alle vier Objekte (inkl. fee), aber irgendwie nicht auf das untergeordnete Attribut fee.paymentDate, um es konvertieren zu können.
Hat jemand einen Tipp?
<f:form action="editForEnergyFiBu" controller="User" name="fee" object="{fee}" arguments="{currentLoggedInUser:currentLoggedInUser, user:user, certification:certification, fee:fee}" additionalAttributes="{role:'form'}">
...
<td><f:form.textfield property="paymentDeadline" name="paymentDeadline" value="{fee.paymentDeadline->f:format.date(format:'d.m.Y')}" /></td>
...
<f:form.submit value="{f:translate(id:'tx_wta_domain_model_wtautility.save')}" />
</f:form>
public function initializeEditForEnergyFiBuAction() {
// Convert date string into DateTime format
\TYPO3\CMS\Core\Utility\GeneralUtility::devLog('Debug-Message', 'Debugger', $severity=2, $this->arguments->getArgumentNames()); // Result: 4 names, incl. argument fee
if(isset($this->arguments['fee']['paymentDeadline'])) {
$this->arguments['fee']['paymentDeadline']
->getPropertyMappingConfiguration()
->forProperty('fee.paymentDeadline')
->setTypeConverterOption('TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\DateTimeConverter',
\TYPO3\CMS\Extbase\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT, 'd.m.Y');
}
}